Map data use for aircraft

By employing map data that considers various environmental factors and integrating real-time sensory data to update navigation maps, the system effectively addresses the challenges of navigating aircraft through complex urban environments, ensuring safe and efficient flight plans.

WO2025076174A1PCT designated stage expired Publication Date: 2025-04-10SUPERNAL LLC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/049731
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-05
Filing Date
2024-10-03
Publication Date
2025-04-10

AI Technical Summary

Technical Problem

Existing aircraft navigation systems face challenges in selecting optimal flight plans and avoiding obstacles in urban or suburban environments, where tall buildings, construction cranes, and other aircraft pose navigation difficulties.

Method used

The use of map data that characterizes environmental locations based on multiple criteria, such as weather, population density, proximity to emergency landing sites, GPS signal availability, and airspace restrictions, to select and execute flight plans for aircraft, while also updating map data in real-time to account for new objects detected by sensors.

Benefits of technology

This approach enables aircraft to safely navigate through complex environments by minimizing deviations from the intended path, avoiding obstacles, and ensuring compliance with airspace regulations, thereby enhancing operational safety and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024049731_10042025_PF_FP_ABST
    Figure US2024049731_10042025_PF_FP_ABST
Patent Text Reader

Abstract

A method includes generating sensory data characterizing an environment of an aircraft and determining a first position of an object within the environment relative to the aircraft using the sensory data. The method also includes determining a position of the aircraft within the environment using the first position of the object indicated by the sensory data and a second position of the object indicated by map data characterizing the environment. The method also includes controlling the aircraft based on the position of the aircraft. Another method includes generating sensory data characterizing an environment of an aircraft using a sensor and determining a position of an object within the environment relative to the aircraft using the sensory data. The method also includes updating map data characterizing the environment in response to determining that the object is not represented by the map data, and controlling the aircraft based the aircraft's position.
Need to check novelty before this filing date? Find Prior Art

Description

Map Data Use for AircraftCROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims priority to US provisional application no. 63 / 542,764, filed on October 5, 2023, the contents of which are hereby incorporated by reference.BACKGROUND

[0002] Using an aircraft (e.g., an autonomous aircraft) to transport persons or cargo within an urban or suburban environment can be challenging. Obstacles such as tall buildings, construction cranes, or other aircraft can cause difficulties in choosing an optimal flight plan for the aircraft, navigating the aircraft, and avoiding unexpected obstacles.SUMMARY

[0003] A first example is a method comprising: selecting a flight plan for an aircraft using a start location, an end location, and map data that characterizes locations of an environment based on two criteria; and causing the aircraft to move according to the flight plan.

[0004] A second example is a non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of the first example.

[0005] A third example is a computing device comprising: one or more processors; and a computer readable medium storing instructions that, when executed by the one or more processors, cause the computing device to perform the method of the first example.

[0006] A fourth example is an aircraft comprising the computing device of the third example.

[0007] A fifth example is a method comprising: generating sensory data characterizing an environment of an aircraft using a sensor; determining a first position of an object within the environment relative to the aircraft using the sensory data; determining a position of the aircraft within the environment using the first position of the object indicated by the sensory data and a second position of the object indicated by map data characterizing the environment; and controlling the aircraft based on the position of the aircraft.

[0008] A sixth example is a non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of the fifth example.

[0009] A seventh example is a computing device comprising: one or more processors; and a computer readable medium storing instructions that, when executed by the one or more processors, cause the computing device to perform the method of the fifth example.

[0010] An eighth example is an aircraft comprising the computing device of the seventh example.

[0011] A ninth example is a method comprising: generating sensory data characterizing an environment of an aircraft using a sensor; determining a position of an object within the environment relative to the aircraft using the sensory data; updating map data characterizing the environment in response to determining that the object is not represented by the map data; and controlling the aircraft based on the position of the aircraft.

[0012] A tenth example is a non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of the ninth example.

[0013] An eleventh example is a computing device comprising: one or more processors; and a computer readable medium storing instructions that, when executed by the one or more processors, cause the computing device to perform the method of the ninth example.

[0014] A twelfth example is an aircraft comprising the computing device of the eleventh example.

[0015] When the term “substantially” or “about” is used herein, it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including, for example, tolerances, measurement error, measurement accuracy limitations, and other factors known to those of skill in the art may occur in amounts that do not preclude the effect the characteristic was intended to provide. In some examples disclosed herein, “substantially” or “about” means within + / - 0-5% of the recited value.

[0016] These, as well as other aspects, advantages, and alternatives will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. Further, it should be understood that this summary and other descriptions and figures provided herein are intended to illustrate the invention by way of example only and, as such, that numerous variations are possible.BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Figure l is a block diagram of an aircraft and a separate computing device, in accordance with exemplary embodiments of the present invention.

[0018] Figure 2 is a schematic diagram of an aircraft maneuvering, in accordance with exemplary embodiments of the present invention.

[0019] Figure 3 is a flow chart of functionality related to selecting a flight plan using map data that characterizes locations of an environment based on two criteria, in accordance with exemplary embodiments of the present invention.

[0020] Figure 4 is a flow chart of functionality related to controlling an aircraft based on its position within the environment, in accordance with exemplary embodiments of the present invention.

[0021] Figure 5 is a schematic diagram of sensory data and map data represented within respective coordinate spaces, in accordance with exemplary embodiments of the present invention.

[0022] Figure 6 is a flow chart of functionality related to controlling an aircraft to avoid objects, in accordance with exemplary embodiments of the present invention.

[0023] Figure 7 is a block diagram of a method, in accordance with exemplary embodiments of the present invention.

[0024] Figure 8 is a block diagram of a method, in accordance with exemplary embodiments of the present invention.

[0025] Figure 9 is a block diagram of a method, in accordance with exemplary embodiments of the present invention.DETAILED DESCRIPTION

[0026] This disclosure includes a method for using at least two different types of map data to select a flight plan and cause an aircraft to move according to the flight plan. The disclosure also includes a method for controlling the aircraft based on the aircraft’s position that is determined using sensory data and map data. The disclosure also includes a method for controlling the aircraft and updating the map data based on detecting a new object within the environment of the aircraft. In some embodiments, using map data that contains information such as building location and height, temporary objects’ location, free space, weather data, and airspace restrictions help the aircraft travel safely.

[0027] Figure 1 is a block diagram of an aircraft 10 and a computing device 100B, in accordance with exemplary embodiments of the present invention. The aircraft 10 includes a computing device 100 A, one more actuator(s) 14, and one or more sensor(s) 16.

[0028] The computing device 100 A includes one or more processors 102, a non-transitory computer readable medium 104, a communication interface 106, and a user interface 108. Components of the computing device 100 A are linked together by a system bus, network, or other connection mechanism 112.

[0029] The one or more processors 102 may be any type of processor(s), such as a microprocessor, a field programmable gate array, a digital signal processor, a multicore processor, etc., coupled to the non-transitory computer readable medium 104.

[0030] The non-transitory computer readable medium 104 may be any type of memory, such as volatile memory like random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), or non-volatile memory like readonly memory (ROM), flash memory, magnetic or optical disks, or compact-disc read-only memory (CD-ROM), among other devices used to store data or programs on a temporary or permanent basis.

[0031] Additionally, the non-transitory computer readable medium 104 may store instructions 114. The instructions 114 are executable by the one or more processors 102 to cause the computing device 100 A to perform any of the functions or methods described herein.

[0032] The communication interface 106 may include hardware to enable communication within the computing device 100 A and / or between the computing device 100 A and one or more other devices. The hardware can include any type of input and / or output interfaces, a universal serial bus (USB), PCI Express, transmitters, receivers, and antennas, for example.

[0033] The communication interface 106 may be configured to facilitate communication with one or more other devices, in accordance with one or more wired or wireless communication protocols. For example, the communication interface 106 may be configured to facilitate wireless data communication for the computing device 100 A according to one or more wireless communication standards, such as one or more Institute of Electrical and Electronics Engineers (IEEE) 801.11 standards, ZigBee standards, Bluetooth standards, etc. As another example, the communication interface 106 can be configured to facilitate wired data communication with one or more other devices. The communication interface 106 may also include analog-to-digital converters (ADCs) or digital-to-analog converters (DACs) that the computing device 100 A can use to control various components of the computing device 100 A or external devices.

[0034] The user interface 108 may include any type of display component configured to display data. As one example, the user interface 108 can include a touchscreen display. As another example, the user interface 108 can include a flat-panel display, such as a liquidcrystal display (LCD) or a light-emitting diode (LED) display. The user interface 108 can include one or more pieces of hardware used to provide data and control signals to the computing device 100 A. For instance, the user interface 108 can include a mouse or a pointing device, a keyboard or a keypad, a microphone, a touchpad, or a touchscreen, among other possible types of user input devices. Generally, the user interface 108 can enable anoperator to interact with a graphical user interface (GUI) provided by the computing device 100A (e.g., displayed by the user interface 108).

[0035] The aircraft 10 may be any type of aircraft such as a quadcopter, a helicopter, or a winged aircraft, for example. The aircraft 10 typically is configured to transport persons and / or cargo within an urban or suburban environment. In some embodiments, the aircraft 10 is a vertical takeoff and landing (VTOL) vehicle. Further, in some embodiments, the aircraft 10 uses electric power to hover, takeoff, and / or land vertically.

[0036] The actuator(s) 14 may include one or more thrusters, propellers, rotors, jet engines, or control surfaces that are configured to cause the aircraft 10 to move or change direction or orientation. In some embodiments, the actuator(s) 14 include components that facilitate movement, including one or more gearboxes that each drive one or more propellers and / or one or more propeller motors. The actuator(s) 14 may also include multiple lift rotors that facilitate vertical takeoff and landing of the aircraft 10. Each lift rotor may be driven by a gearbox, which in turn may be driven by an electric motor. Further, the aircraft 10 may have one or more battery modules and one or more energy management systems (EMSs) that are in communication with the battery modules and that are configured as electronic regulators to monitor and control the charging and discharging of the battery modules.

[0037] The sensor(s) 16 may include one or more of a light detection and ranging (LIDAR) system (e.g., a solid-state LIDAR sensor), one or more visual light or thermal cameras, a radar transceiver, a pseudolite, one or more electronically scanned arrays (ESAs), or a 5G receiver. In some embodiments, the sensor(s) 16 may include INS, GNSS, and / or RTK systems. The computing device 100B may take the form of a server and includes any or all of the components of the computing device 100 A. In some embodiments, the computing device 100B may be remote from the aircraft 10. For example, the computing device 100B may be associated with a takeoff and landing area of the aircraft 10. In some embodiments, the takeoff and landing area is a vertiport. As another example, the computing device 100B may be associated with a ground station. As yet another example, the computing device 100B may be associated with another aircraft. In some examples, functionality described herein can be performed by the computing device 100A and / or the computing device 100B.

[0038] Figure 2 is a schematic diagram of a flight plan 203 that the aircraft 10 travels within an environment 204, in accordance with exemplary embodiments of the present invention. In some embodiments, the aircraft 10 may transport a passenger from a start location 202A such as a vertiport in a city to an end location 202B such as a vertiport in asecond city. In the example illustrated in Figure 2, the straight line path 205 separating the start location 202 A and the end location 202B is about 10 miles.

[0039] In some embodiments, the computing device 100 A positioned within the aircraft 10 selects the flight plan 203 for the aircraft 10 using the start location 202 A, the end location 202B, and map data that characterizes locations of an environment 204 based on at least two criteria. Additionally, in some embodiments, the computing device 100 A causes the aircraft 10 to move according to the flight plan 203.

[0040] In other embodiments, the computing device 100B selects the flight plan 203 for the aircraft 10 using the start location 202 A, the end location 202B, and the map data that characterizes locations of the environment 204 based on at least two criteria. In some embodiments, the computing device 100B sends instructions to the computing device 100 A to cause the aircraft 10 to move according to the flight plan 203 selected by the computing device 100B.

[0041] In some embodiments, the user interface 108 of the computing device 100 A or the user interface 108 of the computing device 100B receives input indicating the start location 202 A or the end location 202B. The computing device 100 A or the computing device 100B may responsively select the flight plan 203 based on the input. In some embodiments, however, the start location 202A is determined via a GPS receiver of the aircraft 10.

[0042] In some embodiments, the map data is stored on the computer readable medium 104 of the computing device 100 A, the computer readable medium 104 of the computing device 100B, or another server, network drive, or computing device that is accessible by the computing device lOOA or the computing device 100B.

[0043] In some embodiments, the map data characterizes the locations of the environment 204 based on two or more of weather information, population density, proximity to an emergency landing site, availability of global navigation satellite system (GPS) signals, or whether entry is permitted. Typically, the map data assigns scores, ratings, states, or numerical values to one or more coordinates (or clusters of coordinates) in the environment 204 based on two or more of the above criteria.

[0044] With regard to the weather information, for example, the map data may characterize the locations of the environment 204 respectively based on current or forecasted precipitation density, current or forecasted wind velocity (e.g., speed and direction), current or forecasted cloud cover, current or forecasted temperature, current or forecasted relative humidity, or current or forecasted lightning strike frequency. In some embodiments, the computing device 100 A or the computing device 100B uses the map data to select the flightplan 203 that minimizes deviation from the straight line path 205 between the start location 202A and the end location 202B, while avoiding intermediate locations at which the following phenomena are expected to occur during the flight plan 203 : a precipitation density exceeding a threshold, wind speeds or directions exceeding or satisfying respective thresholds, cloud cover exceeding a threshold, a temperature exceeding a threshold such as 90° F, a temperature less than a threshold such as 20° F, a relative humidity exceeding a threshold such as 70%, or a lightning strike frequency that exceeds a threshold.

[0045] The map data may also characterize the locations of the environment 204 respectively based on population density (e.g., an average density of persons generally present at each location on or near the ground). In some embodiments, the computing device 100 A or the computing device 100B uses the map data to select the flight plan 203 that minimizes deviation from the straight line path 205 while avoiding intermediate locations that have population densities that exceed a threshold.

[0046] The map data may also characterize the locations of the environment 204 based on their respective proximities to an emergency landing site, such as a large green space, an undeveloped field, a large body of water, or a flat roof of a large building. To be considered an emergency landing site, these locations may have an area that exceeds a threshold. In some embodiments, the computing device 100 A or the computing device 100B uses the map data to select the flight plan 203 that minimizes deviation from the straight line path 205 while avoiding intermediate locations that are too far from an emergency landing site.

[0047] The map data may also characterize the locations of the environment 204 based on whether GPS signals can be adequately received from satellites at each location. In some embodiments, the computing device 100 A or the computing device 100B uses the map data to select the flight plan 203 that minimizes deviation from the straight line path 205 while avoiding intermediate locations at which GPS signals are unavailable.

[0048] The map data may also characterize the locations of the environment 204 based on whether entry into each location is permitted. For example, some locations may be considered “no-fly zones” such as the airspace above or near airports, vertiports, heavily used aviation corridors, the airspace above or near military bases, or the airspace above or near government buildings. The computing device 100A or the computing device 100B uses the map data to select the flight plan 203 that minimizes deviation from the straight line path 205 while avoiding intermediate locations into which entry is not permitted.

[0049] In some embodiments, the map data takes the form of one or more of a grid map, a state space, an occupancy map, or a topological roadmap (with knowledge of corridorsvolume). In the case of an occupancy map, for example, the map data may indicate whether or not each location (e.g., three-dimensional coordinate) of the environment 204 is occupied by a structure or obstacle such as a building, a tree, or a construction crane. In some examples, the occupancy map defines probabilities that each location of the environment 204 is occupied by a structure or an obstacle. For example, the map data may indicate whether each location of the environment 204 is occupied and specify the altitude range(s) at which the each location is occupied by an object of some sort.

[0050] The computing device 100 A or the computing device 100B may select the flight plan based on a current pose of the aircraft 10. That is, in some embodiments, the computing device 100 A or the computing device 100B selects the flight plan based on the position, the altitude, the orientation, the velocity (e.g., speed and direction), or the acceleration of the aircraft 10. Certain flight plans may be more feasible or practical than others based on the current pose of the aircraft 10.

[0051] Subject to one or more of the criteria above, the computing device 100A or the computing device 100B may select the flight plan 203 with the aim of minimizing the length of the flight plan 203 (e.g., distance traveled), minimizing expected fuel or energy consumption, or minimizing the expected duration of the flight plan 203. Additionally or alternatively, the computing device 100 A or the computing device 100B may select the flight plan 203 such that the flight plan 203 avoids any obstacles indicated by the map data by a predetermined distance.

[0052] In some embodiments, the flight plan 203 is defined by legs and waypoints. Referring to the example illustrated in Figure 2, the flight plan 203 includes a leg 204A, a leg 204B, a leg 204C, and a leg 204D. Further, referring to the example illustrated in Figure 2, the flight plan 203 also includes a waypoint 207A, a waypoint 207B, and a waypoint 207C. In the example illustrated in Figure 2, the leg 204A connects the start location 202A and the waypoint 207A, the leg 204B connects the waypoint 207A and the waypoint 207B, the leg 204C connects the waypoint 207B and the waypoint 207C, and the leg 204C connects the waypoint 207C and the end location 202B. As such, the computing device 100A or the computing device 100B may select the flight plan 203 by selecting the waypoint 207 A, the waypoint 207B, and the waypoint 207C.

[0053] For instance, the computing device 100 A or the computing device 100B may determine what alterations are necessary with respect to the straight line path 205 to generate the flight plan 203. Although the flight plan 203 is depicted in two dimensions in Figure 2, itshould be noted that the flight plan 203 can include variations and travel in all three dimensions to avoid obstacles or other undesirable locations and altitudes.

[0054] In some embodiments, the computing device lOOA or the computing device 100B determines that the location 209A along the straight line path 205 will experience excessive lightning strikes during transit of the aircraft 10 through or over the location 209 A. As a result, the computing device 100 A or the computing device 100B may select or generate the flight plan 203 such that the leg 204A and the leg 204B avoid the location 209A.

[0055] Further, in some embodiments, the computing device 100 A or the computing device 100B determines that the location 209B near the straight line path 205 has a population density that exceeds a predetermined threshold. As a result, the computing device 100 A or the computing device 100B may select or generate the flight plan 203 such that the leg 204B and the leg 204C avoid the location 209B.

[0056] Moreover, in some embodiments, the computing device 100 A or the computing device 100B determines that the location 209C near the straight line path 205 is too far from any emergency landing sites. As a result, the computing device 100 A or the computing device 100B may select or generate the flight plan 203 such that the leg 204C and the leg 204D avoid the location 209C.

[0057] The computing device 100 A may use a GPS receiver of the aircraft 10 and closed- loop feedback to guide the aircraft 100 along the flight plan 203. More particularly, the computing device 100 A may determine a difference between a position of the aircraft 10 and the flight plan 203 and may cause the aircraft 10 to move such that the difference between the current position of the aircraft 10 and the flight plan 203 is reduced.

[0058] Figure 3 is a flow chart of functionality related to selecting the flight plan 203 using the map data 304 and causing the aircraft 100 to move according to the flight plan 203, in accordance with exemplary embodiments of the present invention. As noted above, the aircraft 100 may use aircraft state information, such as a current location of the aircraft 100 or the start location 202 A of the aircraft 100 to select the flight plan 203. In some embodiments, the aircraft 100 also uses sensor data to generate 3D structure information related to the environment 204 and / or objects within the environment 204 to inform selection of the flight plan 203.

[0059] Figure 4 is a flow chart of functionality related to controlling the aircraft 10 based on its position within the environment 204, in accordance with exemplary embodiments of the present invention. Figure 5 is a schematic diagram of sensory data 302 represented withina coordinate space and the map data 304 represented within a coordinate space, in accordance with exemplary embodiments of the present invention.

[0060] In some embodiments, the position of the aircraft 10 is determined using both the sensory data 302 and the map data 304. The map data 304 may be the same as any of the map data described above, but the map data 304 may also include satellite imagery, contour line maps, elevation maps, or point cloud maps. In some embodiments, at runtime, the map data 304 already exists, whereas the sensory data 302 is generated by the computing device 100A and the sensors 16 at runtime when the aircraft 10 is in flight.

[0061] During flight of the aircraft 10, the computing device lOOAmay use the sensors16 to generate (e.g., collect or capture) the sensory data 302 that characterizes the environment 204. In some embodiments, the computing device lOOAuses exteroceptive sensors such as cameras, LIDAR, or radar to generate the sensory data 302.

[0062] In some embodiments, the sensory data 302 indicates the presence of an object J (e.g., a distinguishable feature) within the environment 204. More specifically, the sensory data 302 may indicate the position of the object J with respect to the aircraft 10. The object J could be a previously known construction crane, a landmark, or a building, for example. If the sensory data 302 includes images captured by a camera, the computing device lOOAmay use computer vision techniques to convert the images into a three-dimensional point cloud representing the relative positions of the object J and the aircraft 10 within the environment 204. LIDAR and radar may be used to directly generate a three-dimensional point cloud representing the relative positions of the object J and the aircraft 10 within the environment 204.

[0063] Next, the computing device 100 A or the computing device 100B may determine the position of the object J within the environment 204 relative to the aircraft 10 using the sensory data 302. In some embodiments, the computing device 100 A determines the position of the object J using a three-dimensional coordinate system having an origin at the aircraft 10. In some embodiments, the position of the object J may be represented as (50 m, 50 m, 10 m), assuming that the object is 50 meters east of the aircraft, 50 meters north of the aircraft, and 10 meters above the aircraft. In other embodiments, spherical or cylindrical coordinates may be used to express the position of the object J relative to the aircraft 10.

[0064] Next, the computing device 100 A or the computing device 100B may determine the position of the aircraft 10 within the environment 204 using (1) the position of the object J indicated by the sensory data 302 and (2) the position of the object J indicated by the map data 304. The position of the aircraft 10 within the environment 204 may be expressed as avector 306 originating at OE and ending at the aircraft 10. In some embodiments, OE may represent sea level at 0°N latitude and 0°E longitude, but other representations are possible. The position of the object J indicated by the sensory data 302 may be represented by the vector 308 and the position of the object J indicated by the map data 304 is represented by the vector 310. The vector 306 may be calculated as the vector 310 minus the vector 308.

[0065] In some embodiments, one or more proprioceptive sensors 16 of the aircraft 10 are used to refine the position of the aircraft 10 determined using the sensory data 302 (e.g., obtained using exteroceptive sensors 16) and the map data 304. That is, the computing device 100 A or the computing device 100B may compare the position of the aircraft 10 estimated using the sensory data 302 and the map data 304 to a position of the aircraft 10 indicated by the one or more proprioceptive sensors 16 of the aircraft 10. Such proprioceptive sensors 16 may include an inertial measurement unit, an accelerometer, or a gyroscope, for example. In particular, the computing device 100 A or the computing device 100B may use a Kalman filter to compare the position of the aircraft 10 estimated using the sensory data 302 and the map data 304 to the position of the aircraft 10 indicated by the one or more proprioceptive sensors 16. Then the computing device 100A or the computing device 100B may generate a weighted average of the position of the aircraft 10 estimated using the sensory data 302 and the map data 304 and the position of the aircraft 10 indicated by the proprioceptive sensors 16. The one or more proprioceptive sensors 16 may be used to estimate a position of the aircraft 10 using dead reckoning, for example.

[0066] After the position of the aircraft 10 within the environment 204 is known, the computing device 100 A may control the aircraft 10 based on the determined position of the aircraft 10. In some embodiments, the computing device lOOAuses the determined position of the aircraft 10 for closed-loop feedback control to keep the aircraft 10 conforming to the flight plan 203. That is, the computing device lOOA may reduce or minimize the difference between the determined position of the aircraft 10 and the expected position of the aircraft 10 according to the flight plan 203.

[0067] In some embodiments, the computing device 100A controls the aircraft 10 using the determined position of the aircraft 10 to avoid the object J. The computing device 100 A may determine that the distance between the aircraft 10 and the object J is smaller than a predetermined threshold and may cause the aircraft 10 to maneuver away from the object J. In some embodiments, the map data 304 may include one or more of an occupancy map, a voxel map, or a landmark map.

[0068] In some embodiments, the map data 304 is updated based on detecting the object J, the object J is not currently represented by the map data 304. First, the computing device lOOA may generate the sensory data 302 using the sensors 16 as discussed above. Next, as discussed above, the computing device lOOA or the computing device 100B may determine the position of the object J relative to the aircraft 10 using the sensory data 302.

[0069] Then, the computing device 100 A or the computing device 100B may update the map data 304 characterizing the environment 204 in response to determining that the object J is not represented by the map data 304. That is, the map data 304 may be altered to reflect the position of the object J. Additionally, the computing device lOOA may control the aircraft 10 based on the position of the aircraft 10, as discussed above.

[0070] Figure 6 is a flow chart of functionality related to controlling the aircraft 100 to avoid objects within the environment 204, in accordance with exemplary embodiments of the present invention. As shown, sensor data may be used to detect objects that do not appear within the map data 304. The aircraft 100 uses the sensor data and the map data 304 to control the aircraft 100 to avoid such objects while adhering to the flight plan 203.

[0071] Figures 7-9 are block diagrams of a method 400, a method 500, and a method 600, which in some examples is performed by the computing device 100A and / or the computing device 100B. As shown in Figures 7-9, the method 400, the method 500, and the method 600 include one or more operations, functions, or actions as illustrated by steps 402, 404, 502, 504, 506, 508, 602, 604, 606, and 608. Although the steps are illustrated in a sequential order, these steps may also be performed in parallel, and / or in a different order than those described herein. Also, the various steps may be combined into fewer blocks, divided into additional blocks, and / or removed based upon the desired implementation.

[0072] At a step 402, the method 400 includes the computing device 100 A or the computing device 100B selecting the flight plan 203 for the aircraft 10 using the start location 202A, the end location 202B, and the map data 304 that characterizes locations 209 of the environment 204 based on two criteria. Functionality related to step 402 is described above with reference to Figures 2 and 3.

[0073] At a step 404, the method 400 includes the computing device 100 A causing the aircraft 10 to move according to the flight plan 203. Functionality related to step 404 is described above with reference to Figures 2 and 3.

[0074] At a step 502, the method 500 includes generating the sensory data 302 characterizing the environment 204 of the aircraft 10 using the sensors 16. Functionality related to step 502 is described above with reference to Figures 4-6.

[0075] At a step 504, the method 500 includes the computing device 100A or the computing device 100B determining the position of the object J within the environment 204 relative to the aircraft 10 using the sensory data 302. Functionality related to step 504 is described above with reference to Figures 4-6.

[0076] At a step 506, the method 500 includes the computing device 100A or the computing device 100B determining the position of the aircraft 10 within the environment 204 using the position of the object J indicated by the sensory data 302 and the position of the object J indicated by the map data 304 characterizing the environment 204. Functionality related to step 506 is described above with reference to Figures 4-6.

[0077] At a step 508, the method 500 includes the computing device 100A controlling the aircraft 10 based on the position of the aircraft 10. Functionality related to step 508 is described above with reference to Figures 4-6.

[0078] At a step 602, the method 600 includes generating the sensory data 302 characterizing the environment 204 of the aircraft 10 using the sensors 16. Functionality related to step 602 is described above with reference to Figures 4-6.

[0079] At a step 604, the method 600 includes the computing device 100 A or the computing device 100B determining the position of the object J within the environment 204 relative to the aircraft 10 using the sensory data 302. Functionality related to step 604 is described above with reference to Figures 4-6.

[0080] At a step 606, the method 600 includes the computing device 100 A or the computing device 100B updating the map data 304 characterizing the environment 204 in response to determining that the object J is not represented by the map data 304. Functionality related to step 606 is described above with reference to Figures 4-6.

[0081] At a step 608, the method 600 includes the computing device 100 A controlling the aircraft 10 based on the position of the aircraft 10. Functionality related to step 608 is described above with reference to Figures 4-6.

[0082] While various example aspects and example embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various example aspects and example embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims

CLAIMSWhat is claimed is:

1. A method comprising: selecting a flight plan for an aircraft using a start location, an end location, and map data that characterizes locations of an environment based on two criteria; and causing the aircraft to move according to the flight plan.

2. The method of claim 1, wherein the map data characterizes the locations of the environment based on two or more of weather information, population density, proximity to an emergency landing site, availability of global navigation satellite system signals, or whether entry is permitted.

3. The method of any one of claims 1-2, wherein the map data takes the form of one or more of a grid map, a state space, an occupancy map, or a topological roadmap.

4. The method of any one of claims 1-3, wherein selecting the flight plan comprises selecting the flight plan using a position, an orientation, or a velocity of the aircraft.

5. The method of any one of claims 1-4, wherein selecting the flight plan comprises selecting the flight plan based on an expected amount of energy expended to move according to the flight plan.

6. The method of any one of claims 1-5, wherein selecting the flight plan comprises selecting the flight plan based on a length of the flight plan.

7. The method of any one of claims 1-6, wherein selecting the flight plan comprises selecting the flight plan based on an expected duration of the flight plan.

8. The method of any one of claims 1-7, wherein selecting the flight plan comprises selecting the flight plan based on whether the flight plan avoids any obstacles by a predetermined distance.

9. The method of any one of claims 1-8, wherein selecting the flight plan comprises selecting waypoints that define the flight plan.

10. The method of any one of claims 1-9, further comprising receiving the start location and the end location via a user interface prior to selecting the flight plan.

11. The method of any one of claims 1-10, wherein causing the aircraft to move according to the flight plan comprises: determining a difference between a position of the aircraft and the flight plan; and causing the aircraft to move such that the difference is reduced.

12. The method of any one of claims 1-11, further comprising: generating sensory data characterizing the environment of the aircraft using a sensor; determining a position of an object within the environment relative to the aircraft using the sensory data; updating the map data in response to determining that the object is not represented by the map data; and controlling the aircraft based on the position of the aircraft.

13. The method of claim 12, wherein generating the sensory data comprises generating the sensory data while the aircraft is in flight.

14. The method of any one of claims 12-13, wherein generating the sensory data comprises generating the sensory data using an exteroceptive sensor.

15. The method of any one of claims 12-14, wherein generating the sensory data comprises generating the sensory data using a light detection and ranging (LIDAR) sensor, a camera, or a radar transceiver.

16. The method of any one of claims 12-15, wherein the map data is generated before the sensory data.

17. The method of any one of claims 12-16, wherein the map data comprises satellite imagery, a contour line map, an elevation map, or a point cloud map.

18. The method of any one of claims 12-16, wherein the map data comprises two or more of satellite imagery, a contour line map, an elevation map, or a point cloud map.

19. The method of any one of claims 12-18, wherein controlling the aircraft comprises controlling the aircraft to avoid the object.

20. The method of claim 19, wherein the map data comprises an occupancy map, a voxel map, or a landmark map.

21. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of any one of claims 1-20.

22. A computing device comprising: one or more processors; and a computer readable medium storing instructions that, when executed by the one or more processors, cause the computing device to perform the method of any one of claims 1- 20.

23. A method comprising: generating sensory data characterizing an environment of an aircraft using a sensor; determining a first position of an object within the environment relative to the aircraft using the sensory data; determining a position of the aircraft within the environment using the first position of the object indicated by the sensory data and a second position of the object indicated by map data characterizing the environment; and controlling the aircraft based on the position of the aircraft.

24. The method of claim 23, wherein generating the sensory data comprises generating the sensory data while the aircraft is in flight.

25. The method of any one of claims 23-24, wherein generating the sensory data comprises generating the sensory data using an exteroceptive sensor.

26. The method of any one of claims 23-25, wherein generating the sensory data comprises generating the sensory data using a light detection and ranging (LIDAR) sensor, a camera, or a radar transceiver.

27. The method of any one of claims 23-26, wherein determining the position of the aircraft further comprises comparing a first estimated position of the aircraft indicated by the sensory data and the map data to a second estimated position of the aircraft indicated by a proprioceptive sensor of the aircraft.

28. The method of claim 27, wherein the proprioceptive sensor comprises an inertial measurement unit, accelerometer, or a gyroscope.

29. The method of any one of claims 27-28, wherein comparing the first estimated position to the second estimated position comprises using a Kalman filter to compare the first estimated position to the second estimated position and generate a weighted average of the first estimated position and the second estimated position.

30. The method of any one of claims 23-29, wherein the map data is generated before the sensory data.

31. The method of any one of claims 23-30, wherein the map data comprises satellite imagery, a contour line map, an elevation map, or a point cloud map.

32. The method of any one of claims 23-30, wherein the map data comprises two or more of satellite imagery, a contour line map, an elevation map, or a point cloud map.

33. The method of any one of claims 23-32, wherein controlling the aircraft comprises controlling the aircraft according to a predetermined flight plan.

34. The method of any one of claims 23-33, wherein controlling the aircraft comprises controlling the aircraft to avoid the object.

35. The method of claim 34, wherein the map data comprises an occupancy map, a voxel map, or a landmark map.

36. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of any one of claims 23-35.

37. A computing device comprising: one or more processors; and a computer readable medium storing instructions that, when executed by the one or more processors, cause the computing device to perform the method of any one of claims 23- 35.

38. A method compri sing : generating sensory data characterizing an environment of an aircraft using a sensor; determining a position of an object within the environment relative to the aircraft using the sensory data; updating map data characterizing the environment in response to determining that the object is not represented by the map data; and controlling the aircraft based on the position of the aircraft.

39. The method of claim 38, wherein generating the sensory data comprises generating the sensory data while the aircraft is in flight.

40. The method of any one of claims 38-39, wherein generating the sensory data comprises generating the sensory data using an exteroceptive sensor.

41. The method of any one of claims 38-40, wherein generating the sensory data comprises generating the sensory data using a light detection and ranging (LIDAR) sensor, a camera, or a radar transceiver.

42. The method of any one of claims 38-41, wherein the map data is generated before the sensory data.

43. The method of any one of claims 38-42, wherein the map data comprises satellite imagery, a contour line map, an elevation map, or a point cloud map.

44. The method of any one of claims 38-42, wherein the map data comprises two or more of satellite imagery, a contour line map, an elevation map, or a point cloud map.

45. The method of any one of claims 32-44, wherein controlling the aircraft comprises controlling the aircraft to avoid the object.

46. The method of claim 45, wherein the map data comprises an occupancy map, a voxel map, or a landmark map.

47. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to perform the method of any one of claims 38-46.

48. A computing device comprising: one or more processors; and a computer readable medium storing instructions that, when executed by the one or more processors, cause the computing device to perform the method of any one of claims 38- 46.

49. An aircraft comprising the computing device of claim 22.

50. An aircraft comprising the computing device of claim 37.

51. An aircraft comprising the computing device of claim 48.

Citation Information

Patent Citations

  • Methods and systems for controlling the display of maps aboard an aircraft

    US20060005147A1

  • Method and System For Aviation Navigation

    US20070138345A1

  • Method and device for displaying a flight plan of an aircraft

    US20080027629A1

  • Automatic real-time flight plan updates

    US20160093217A1

  • System for producing a flight plan

    US20180366010A1