Systems and methods for generating vertical positioning information for unmanned aerial vehicles

An unmanned aerial vehicle (UAV) may include a communication interface and a pressure sensor configured to measure barometric pressure. The UAV may also include a processor configured to generate a request for elevation data and barometric pressure data and transmit, via the communication interface, the request to the at least one other device. The processor may also be configured to receive, from each of the at least one other device, elevation data and barometric pressure data, and estimate the elevation of the UAV based on the measured barometric pressure, the received elevation data and the received barometric pressure data.

BACKGROUND INFORMATION

The use of Unmanned Aerial Vehicles (UAVs), also referred to as drones, is increasing. In order to fly multiple drones in proximity to one another, each drone must maintain a certain separation from all the other drones. As a result, the positional accuracy with respect to the location of each drone is very important to allow multiple drones to fly in a crowded air space.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Precise absolute altitude information is important to allow drones to navigate in air spaces that include multiple possible conflict sources—for example, land-based structures such as buildings, transportation infrastructure and utilities infrastructure, as well as airborne conflicts such as other drones. Some conventional drones use Global Positioning System (GPS) units that provide location information, including vertical positioning information (e.g., elevation above sea level). GPS units, however, cannot provide a level of accuracy that is required in many air spaces. For example, even when using wide area augmentation system (WAAS) correction, many standard GPS units provide a vertical dilution of precision (DOP) that may be greater than 10 meters. In addition, since many GPS units use the World Geodetic System (WGS) 84 theoretical ellipsoid to approximate mean sea level, errors in elevation relative to the actual surface of the earth of up to 30 meters may be introduced. As a result, the elevation accuracy associated with existing drones may be inadequate for flying in congested air space, where higher precision absolute altitude information is necessary to avoid air space conflicts.

Implementations described herein provide accurate absolute vertical positioning information for UAVs (also referred to herein as drones) using systems and methods that include using barometric pressure data associated with one or more reference locations having known elevations. In one implementation, a barometer located on a drone may determine the barometric pressure at the drone prior to the flight. The drone may also communicate with one or more fixed devices, such as wireless communication stations, having known elevations to obtain the barometric pressure and elevation data at the fixed devices. For example, the fixed devices may have elevations that have been surveyed and verified as accurate within a small degree of error, such as 0.05 meters or less. The drone may then execute an algorithm, such as a regression algorithm, based on the elevation and barometric pressure data received from the fixed device(s) and the measured barometric pressure at the drone to determine an accurate elevation at the drone prior to the flight. In this manner, the drone uses the elevation and barometric pressure obtained from the fixed device(s) as a benchmark and determines or corrects the drone's conventionally generated elevation information. This may allow drones to have more accurate elevation data and to fly in densely populated air spaces, while also helping to avoid mid-air collisions. In some implementations, the drone may repeat this benchmarking process periodically during flight to ensure positional accuracy, and/or may make adjustments due to changing conditions (e.g., weather).

FIG.1is a diagram illustrating an exemplary environment in which systems and methods described herein may be implemented. Referring toFIG.1, environment100includes UAV110(also referred to herein as drone110), and wireless stations120-1,120-2and120-3(referred to individually as wireless station120and collectively as wireless stations120). It should be understood that environment100may include a large number of UAVs110(e.g., dozens or more) and additional wireless stations120.

UAV110may include an aircraft (e.g., a single rotor aircraft, multirotor aircraft or fixed wing aircraft) that that receives control signals from a controller (not shown). In implementations described herein, UAV110may receive signals from a transmitter associated with the controller to control the flight of UAV110. For example, the rotational speed of each rotor for a multirotor UAV110may be adjusted individually via signals from the controller to maneuver UAV110based on the particular flight goals.

Wireless stations120-1,120-2and120-3(referred to herein collectively as wireless stations120and individually as wireless station120) may be associated with a communication network, such as a fourth generation (4G) long term evolution (LTE) network, a fifth generation (5G) network, etc. Each wireless station120may service a set of user equipment (UE) devices (not shown) that may include UAV110. For example, wireless stations120may be part of a radio access network (RAN) that couples UE devices to a core network to receive telephone, data and multi-media data.

In one implementation, wireless station120may include a 5G base station (e.g., a next generation NodeB (gNB)) that includes one or more radio frequency (RF) transceivers. For example, wireless station120may include three RF transceivers and each RF transceiver may service a 120 degree sector of a 360 degree field of view. Each RF transceiver may include or be coupled to an antenna array. The antenna array may include an array of controllable antenna elements configured to send and receive 5G new radio (NR) wireless signals via one or more antenna beams. The antenna elements may be digitally controllable to electronically tilt or adjust the orientation of an antenna beam in a vertical direction and/or horizontal direction. In some implementations, wireless station120may also include a 4G base station (e.g., an evolved NodeB (eNodeB)) that communicates wirelessly with UE devices located within the service range of wireless station120.

In accordance with an exemplary implementation, each wireless station120may have a known elevation, such as an elevation above sea level. The known elevation may be obtained via conventional surveying or any other conventional method in which the accuracy of the elevation is within, for example, 0.05 meters (m). Wireless stations120may each also include a barometer to measure the barometric pressure. Wireless stations120may provide the elevation and barometric pressure data to UAV110to allow UAV110to accurately determine its elevation, as described in detail below.

FIG.2illustrates an exemplary configuration of UAV110. Referring toFIG.2, UAV110may include bus210, processor220, memory230, input device240, output device250, positioning system260, pressure sensor270and communication interface280. Bus210may include a path that permits communication among the elements of UAV110.

Processor220may include one or more processors, microprocessors, or processing logic that may interpret and execute instructions. Memory230may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor220. Memory230may also include a read only memory (ROM) device or another type of static storage device that may store static information and instructions for use by processor220. Memory230may further include a solid state drive (SSD). Memory230may also include a magnetic and/or optical recording medium (e.g., a hard disk) and its corresponding drive.

Input device240may include a mechanism that permits a user to input information, such as a keypad, a keyboard, a mouse, a pen, a microphone, a touch screen, voice recognition and/or biometric mechanisms, etc. Output device250may include a mechanism that outputs information to the user, including a display (e.g., a liquid crystal display (LCD)), a speaker, etc. In some implementations, UAV110may include a touch screen display may act as both an input device240and an output device250.

Positioning system260may include one or more receivers, sensors, and/or processors to provide relative and/or absolute position and orientation data of UAV110. For example, positioning system260may include a satellite navigation system, such as a global positioning system (GPS) component, which may provide position information in relation to a standard reference frame. Position information may include rectangular coordinates in the World Geodetic System 84 (WGS84) frame (in either two or three dimensions), geodic coordinates such as latitude, longitude, and altitude, and/or other suitable positioning data. In another embodiment, positioning system260may include an internal measurement unit (IMU) to determine relative displacements based on measured accelerations, and/or gyroscopes to measure angular displacements such as the roll, pitch, and yaw of UAV110. Positioning system260may further include sensors, such as magnetometers, which may be used to determine orientation in a reference frame, such as, for example, the angular orientations with respect to magnetic and/or true north.

Pressure sensor270may measure barometric pressure. For example, pressure sensor270may include a barometer to measure barometric pressure when UAV110is powered up. Pressure sensor270may also measure the barometric pressure at predetermined intervals or continuously. The barometric pressure data may be used to determine the elevation of UAV110while UAV110is in flight.

Communication interface280may include one or more transceivers that UAV110uses to communicate with other devices via wired, wireless or optical mechanisms. For example, communication interface280may include one or more radio frequency (RF) transmitters, receivers and/or transceivers and one or more antennas for transmitting and receiving RF data. Communication interface280may also include a modem or an Ethernet interface to a LAN or other mechanisms for communicating with elements in a network.

The exemplary configuration illustrated inFIG.2is provided for simplicity. It should be understood that UAV110may include more or fewer devices than illustrated inFIG.2. For example, UAV110may include one or more rotors, sensors and control circuitry to control and/or monitor the flight of UAV110, as well as a battery to power UAV110. In an exemplary implementation, UAV110performs operations in response to processor220executing sequences of instructions contained in a computer-readable medium, such as memory230. A computer-readable medium may be defined as a physical or logical memory device. The software instructions may be read into memory230from another computer-readable medium (e.g., a hard disk drive (HDD), SSD, etc.), or from another device via communication interface280. Alternatively, hard-wired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the implementations described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

FIG.3is an exemplary functional block diagram of components implemented in UAV110ofFIG.1. Referring toFIG.3, elevation adjustment program300may be an application program associated with determining and/or correcting the estimated elevation of UAV110prior to and/or during a flight. Elevation adjustment program300may include software instructions executed by processor220stored in memory230of UAV110. In alternative implementations, these components or a portion of these components may be located externally with respect to UAV110.

Elevation adjustment program300may include measurement logic310, elevation determination logic320, weather logic330and communication logic340. Measurement logic310may include logic to obtain information associated with an initial elevation of UAV110. For example, measurement logic310may access pressure sensor270to determine a current barometric pressure at the location of UAV110. Measurement logic310may also access positioning system260to determine an estimated location of UAV110, including information corresponding to an estimated elevation above sea level. As discussed previously, positioning system260may include a GPS system/unit that is used to estimate the location of UAV110, including the elevation above sea level.

Elevation determination logic320may include logic to determine or calibrate the initial elevation of UAV110prior to a flight. For example, elevation determination logic320may generate a communication requesting barometric pressure data and elevation data from fixed devices having known (e.g., surveyed) elevations, such as wireless stations120. Elevation determination logic320may transmit such communications to the fixed devices prior to a flight, as described in detail below.

Elevation determination logic320may also include logic that uses the received barometric pressure and elevation data from other devices, such as wireless stations120, and determines the elevation of UAV110based on the received data. For example, elevation determination logic320may compare the received barometric pressure and elevation data with the barometric pressure and elevation data measured by UAV110. Elevation determination logic320may then set the initial elevation of UAV110or adjust the initial elevation determined by UAV110(e.g., by positioning system260) based on the comparison. For example, in one implementation, elevation determination logic320may execute a linear regression algorithm using the data pairs (e.g., barometric pressure and elevation data from wireless stations120) and determine the elevation of UAV110based on the measured barometric pressure data at UAV110and the linear regression analysis, as described in more detail below.

Weather logic330may analyze barometric pressure data from pressure sensor270and determine whether a change in weather (a weather pattern, such as a cold front or storm), is occurring in an area in which UAV110is flying or planning to fly. In such a case, weather logic330may sense such a change based on a rapid change in barometric pressure measured by pressure sensor270. Weather logic330may then determine that elevation determination logic320may need to adjust the determining of the elevation of the UAV110based on the newly arriving weather pattern, as described in detail below.

Communication logic340may include logic for communicating with other devices in environment100. For example, communication logic340may forward messages to wireless stations120located within a wireless range of UAV110. The messages may request barometric pressure and elevation data. Communication logic340may also receive communications from wireless stations120in response to the requests and forward the communications to, for example, elevation determination logic320.

AlthoughFIG.3shows exemplary components of elevation adjustment program300, in other implementations, elevation adjustment program300may include fewer components, different components, differently arranged components, or additional components than depicted inFIG.3.

FIG.4illustrates an exemplary configuration of wireless station120. Referring toFIG.4, wireless station120includes processor410, memory420, pressure sensor430, weather logic440and communication interface450. Bus405may include a path that permits communication among the elements of wireless station120.

Processor410may include one or more processors, microprocessors, or processing logic that may interpret and execute instructions. Memory420may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor410. Memory420may also include a ROM device or another type of static storage device that may store static information and instructions for use by processor410. Memory420may further include an SSD. Memory420may also include a magnetic and/or optical recording medium (e.g., a hard disk) and its corresponding drive.

Pressure sensor430may measure barometric pressure. For example, pressure sensor430may include a barometer to measure barometric pressure at wireless station120. Pressure sensor430may also measure the barometric pressure at predetermined intervals or continuously. The barometric pressure may be forwarded to UAV110to aid in determine the elevation of UAV110, as described in detail below.

Weather logic440may analyze barometric pressure data from pressure sensor430and determine whether a change in weather (e.g., a weather pattern, such as a cold front or storm), is occurring in an area in which wireless station120is located. In such a case, weather logic440may sense such a change based on a rapid change in barometric pressure. Weather logic440may then determine that current barometric pressure readings to be provided to UAV110should be adjusted (for example, delayed for a period of time, such as until the barometric pressure has stabilized).

Communication interface450may include one or more transceivers that wireless station120uses to communicate with other devices via wired, wireless or optical mechanisms. For example, communication interface450may include one or more RF transmitters, receivers and/or transceivers and one or more antennas for transmitting and receiving RF data. Communication interface450may also include a modem or an Ethernet interface to a LAN or other mechanisms for communicating with elements in a network.

The exemplary configuration illustrated inFIG.4is provided for simplicity. It should be understood that wireless station120may include more or fewer devices than illustrated inFIG.4. For example, wireless station120may include additional components associated with receiving and forwarding communications to/from UE devices for a wireless service provider. In an exemplary implementation, wireless station120performs operations in response to processor410executing sequences of instructions contained in a computer-readable medium, such as memory420. A computer-readable medium may be defined as a physical or logical memory device. The software instructions may be read into memory420from another computer-readable medium (e.g., a hard disk drive (HDD), SSD, etc.), or from another device via communication interface450.

Alternatively, hard-wired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the implementations described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

FIG.5is a flow diagram illustrating processing associated with elements of environment100to determine an elevation of UAV110in accordance with an exemplary implementation. The flow diagram ofFIG.5is described in conjunction with the signal flow diagram ofFIG.6. Processing may begin with determining the elevation of wireless stations120(block510). For example, the elevation of each wireless station120may be determined using conventional surveying equipment that uses the elevation of known reference points to determine the elevation of wireless station120. The elevation of each wireless station120may be determined within a degree of accuracy of, for example, 0.05 meters or less. The elevation of each wireless station120may be stored in its respective memory420along with a timestamp indicating the time when the barometric pressure was recorded.

Wireless station120may then determine the barometric pressure via pressure sensor430(block520). For example, every predetermined period of time (e.g., 10 seconds, 1 minute, 10 minutes, 1 hour, etc.), processor410at wireless station120may poll/access pressure sensor430to determine the current barometric pressure measured via pressure sensor430. Processor410may store the barometric pressure data in memory420.

Assume that UAV110is being prepared for a flight. Elevation adjustment program300may start up when UAV110is powered up prior to the flight. Elevation adjustment program300may then determine the barometric pressure at UAV110(block530;FIG.6, block610). For example, measurement logic310may access pressure sensor270to determine the current barometric pressure at UAV110. Measurement logic310may also estimate the current position information of UAV110(e.g., latitude, longitude and elevation) using, for example, positioning system260(block530;FIG.6, block610). As discussed previously, positioning system260may use GPS or other conventional mechanisms to estimate the elevation.

After determining the barometric pressure and estimating the elevation, elevation adjustment program300may generate a request for elevation and barometric pressure data from one or more fixed locations within the range of the transmitter included in UAV110(block540). For example, elevation determination logic320may generate messages for transmission to wireless stations120within wireless range of UAV110requesting both elevation and barometric pressure data at the wireless stations120. Communication logic340may transmit the messages to the appropriate wireless stations120, such as wireless stations120-1,120-2and120-3(FIG.6, signals622,624and626).

Wireless stations120receive the communications from UAV110and forward their respective elevation and barometric pressure data to UAV110. For example, assume that wireless stations120-1,120-2and120-3receive the request messages from UAV110. Processor410at each wireless station120may access its respective memory420to retrieve the elevation and current barometric pressure data. Processor410may then generate a message including the barometric pressure and elevation data, and transmit the message via communication interface450to UAV110(FIG.6, signals632,634and636). In some implementations, wireless stations120may transmit the barometric pressure and elevation data to UAV110along with other signaling that may be sent to UAV110, such as signals associated with a service provider associated with wireless stations120providing wireless services to UAV110. Sending the barometric pressure and elevation data with other signals may help reduce signaling traffic in environment100. In some implementations, location information (e.g., x-y location) may also be provided with the elevation and barometric pressure data, such as a location of the wireless station120and/or a distance between the wireless station120and the UAV110. In each case, communication interface280at UAV110receives the messages from wireless stations120and forwards the messages to elevation adjustment program300(block550).

Elevation adjustment program300receives the messages with the elevation and barometric pressure data. Elevation adjustment program300may then analyze the data and estimate the elevation of UAV110based on the received data (blocks560and570). For example, in one implementation, elevation determination logic320may use the elevation and barometric pressure data from wireless stations120-1,120-2and120-3and perform a linear regression analysis using the received data pairs (i.e., elevation and barometric pressure data) (FIG.6,640). In one implementation, elevation determination logic320may execute a least squares fit algorithm using the received barometric pressure data and elevation data to generate a best fit line for barometric pressure versus elevation. In some implementations, the locations of the wireless stations120may be taken into account in calculating elevations, such that the information provided by wireless stations120located closer to the current position of UAV110are weighted higher than those farther away. Elevation determination logic320may then determine the elevation at UAV110using the best fit line and based on the measured barometric pressure at UAV110(FIG.6,650).

For example, assume that the measured barometric pressure at wireless station120-1is 77.158 kilopascals (kpa) and the known elevation is 2225 meters, the measured barometric pressure at wireless station120-2is 77.172 kpa and the known elevation is 2241 meters, and the measured barometric pressure at wireless station120-3is 77.181 kpa and the known elevation is 2215 meters. Further assume that the measured barometric pressure at UAV110is 77.203 kpa. Using the received barometric pressure and elevation data pairs from wireless stations120-1,120-2and120-3, elevation determination logic320may execute a regression algorithm, such as a least squares fit algorithm and generate a best fit line representing barometric pressure versus elevation. Elevation determination logic320may use the measured barometric pressure and the calculated best fit line and determine the elevation corresponding to the measured barometric pressure of 77.203 kpa at UAV110. In this example, assume that the measured barometric pressure of 77.203 kpa corresponds to an elevation of 2202 meters based on the least squares fit line generated by elevation determination logic320. In this manner, using the known elevations of wireless stations120, the elevation of UAV110may be determined within an accuracy of 1.0 meters or less (e.g., 0.5 meters or less). This may also allow multiple UAVs110having different types of barometers each having differing accuracies to be normalized such that all UAVs110flying in an air space may have the same reference elevation accuracy. Such absolute elevation accuracy may aid in avoiding mid-air collisions. In addition, some UAVs110that include a vision system that can calibrate to within, for example, 10 centimeters, may then obtain an elevation above sea level accuracy of, for example, less than 25 centimeters.

As described previously, measurement logic310may have initially estimated the elevation of UAV110using positioning system260. For example, assume that positioning system260indicated that the elevation of UAV110prior to the flight is 2195 meters. In this example, elevation determination logic320may set the initial or home measurement to 2202 meters and/or adjust the initial elevation estimate of 2195 meters to 2202 meters (i.e., an adjustment of +7.0 meters). UAV110may then use the 2202 meter elevation value as a baseline for all future elevation determinations when UAV110is in flight. For example, all subsequent elevations generated using pressure sensor270while UAV110is in flight will be based on the initial or home elevation value of 2202 meters.

As discussed above, in some implementations, UAV110may communicate with multiple wireless stations120with known elevations. In other implementations, UAV110may communicate with a single wireless station120having a known elevation. In this case, elevation adjustment program300may use the received barometric pressure and elevation data from the single wireless station120to determine the elevation at UAV110. For example, elevation determination logic320may determine a difference between the barometric pressure at UAV110and the received barometric pressure data from wireless station120. In one implementation, elevation determination logic320may multiply the difference in barometric pressures by a fixed value corresponding to change in elevation based on change in barometric pressure. For example, the fixed value may be an elevation delta or change in meters for every 0.01 kpa change in barometric pressure. Such an elevation value may then be applied to the received elevation from wireless station120(e.g., added or subtracted) to estimate the initial elevation of UAV110based on data received from only one wireless station120.

In still another implementation, UAV110may store a lookup table in memory230correlating elevation in meters to barometric pressure in kpa. In this example, elevation determination logic320may determine a difference between the known elevation obtained from one wireless station120with the elevation stored in the lookup table for the particular barometric pressure measured at wireless station120. In this case, elevation determination logic320may then determine an adjustment based on the particular information. For example, suppose that the elevation in the lookup table for a barometric pressure of 77.158 kpa corresponds to an elevation above sea level of 2220 meters. Further suppose that the elevation data received from wireless station120indicates 2225 meters at a barometric pressure of 77.158 kpa. In this example, elevation determination logic320may determine that an adjustment of +5.0 meters will be applied to the initial elevation determination provided by positioning system260. For example, assume that the pressure sensor270measures the barometric pressure at UAV110to be 77.203 kpa, and the lookup table provides an elevation of 2195 meters for that barometric pressure. In this case, elevation determination logic320may provide an adjustment/correction of +5.0 meters and determine that the initial elevation of UAV110is 2200 meters (i.e., 2195 plus 5).

In some implementations, UAV110may communicate with one or more wireless stations120periodically during the course of a flight, and obtain current barometric pressure and elevation data from the wireless stations120. If the barometric pressure reported by a wireless station120has changed from a prior report, the UAV110may adjust its elevation calculations using the new baseline barometric pressure. Periodic updates to baseline barometric pressures may be useful for drone flights over an extended period of time, where the ambient atmospheric conditions may change over time. Periodic updates may also be useful for drone flights over an extended geographic area where multiple wireless stations120may come into range of UAV110during a flight path (and may be useful to ensure all UAVs in a geographic area are working from the same baseline barometric pressure measurements).

As also discussed above, in some instances, a weather front may be moving into a particular area in which UAV110is located. In such instances, the barometric pressure may be changing rapidly due to the incoming weather front. As a result, the barometric pressure at one or more of wireless stations120may adversely impact the analysis performed by elevation adjustment program300. In such cases, elevation adjustment program300may wait until the weather front has encompassed the area in which UAV110and wireless stations120are located so that all of the received data is consistent with the current weather conditions at UAV110.

For example, if weather logic330determines that the barometric pressure at UAV110is changing relatively quickly (or the barometric pressure is changing more than a typical range/rate of variations while other UAV sensors are not indicating a change in elevation), weather logic330may signal elevation determination logic320to wait for a predetermined period of time before determining the elevation of UAV110. For example, weather logic330may wait until the barometric pressure has stabilized (e.g., changing less than a predetermined amount over a period of time, such as one to five minutes or more) before determining the elevation of UAV110using the current barometric pressure. Similarly, if any of wireless stations120determine that the barometric pressure is changing relatively quickly, those wireless stations120may wait for a predetermined period of time or until the barometric pressure has stabilized before responding to the request from UAV110for the elevation and barometric pressure data. In this manner, anomalies due to changing weather may not adversely affect the determination of elevation by UAV110.

Additionally or alternatively, if the weather pattern is changing, UAV110may transmit requests to wireless stations120for new barometric pressure and elevation data. The new barometric pressure and elevation data may be used to confirm the pressure changes being detected on the UAV110and/or update the elevation calculation using the more recent barometric pressure data. Additionally or alternatively, UAV110may report the detected weather changes to a UAV operator, which may be useful to confirm flight operations or take emergency actions (e.g., immediate return to ground). In other alternatives, wireless stations120may collaborate with each other to determine which wireless stations120should transmit the elevation and barometric pressure data to UAV110to ensure that the wireless stations120sending the barometric pressure data are experiencing the same weather (e.g., the weather front has moved in and the barometric pressure has stabilized). In this implementation, the barometric pressure data from the transmitting wireless stations120will be consistent. In still other alternatives, UAV110may store multiple tables with different barometric pressure and elevation data pairs based on various weather conditions to allow UAV110to determine an elevation of UAV110in different types of weather.

Implementations described herein provide accurate vertical positioning information for UAVs using elevation and barometric pressure information from locations having known elevations. The UAV may analyze the data from the locations having the known elevations and set or adjust the UAV's initial or home elevation based on the analysis. This may allow UAVs to have more accurate elevation data while flying and may also allow UAVs to fly in densely populated air spaces, while also aiding in avoiding mid-air collisions. In addition, using elevation data from locations having known elevations to determine the elevation of UAVs may effectively normalize the elevation information across a number UAVs having different barometers with differing accuracies.

For example, features have been described above with respect to UAV110communication with wireless stations120to obtain elevation and barometric pressure data. In other implementations, UAV110may communicate with any fixed device having a known elevation and the ability to determine barometric pressure. Further, features have been described above with obtaining data from multiple wireless stations (e.g., three) or a single wireless station. In other implementations, UAV110may communicate with other numbers of wireless stations, such as two, five, ten, etc., to obtain elevation and barometric pressure data. Obtaining data from a larger number of wireless stations120(e.g., three or more) may increase the accuracy of the elevation determination performed by UAV110.

In addition, elevation adjustment program300has been described as performing various types of analysis (e.g., linear regression analysis, using a lookup table, etc.) using elevation data from devices having known elevations. It should be understood that elevation adjustment program300may perform other types of analysis for received elevation data and barometric pressure data to set and/or modify the estimated elevation of UAV110.

Still further, features have been described above with respect to UAV110including an elevation adjustment program300to determine its elevation. In other implementations, devices external to UAV110may determine the elevation. For example, wireless stations120and/or devices in a network coupled to wireless stations120may receive the elevation data and barometric pressure data from wireless stations120, as well as the barometric pressure data from UAV110and determine the elevation of UAV110. The device located externally to the UAV110may then provide the estimated elevation to UAV110.

Further, while series of acts have been described with respect toFIG.5and signal flows with respect toFIG.6, the order of the acts and/or signal flows may be different in other implementations. Moreover, non-dependent acts may be implemented in parallel.

It will be apparent that various features described above may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement the various features is not limiting. Thus, the operation and behavior of the features were described without reference to the specific software code—it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the various features based on the description herein.

Further, certain portions of the invention may be implemented as “logic” that performs one or more functions. This logic may include hardware, such as one or more processors, microprocessor, application specific integrated circuits, field programmable gate arrays or other processing logic, software, or a combination of hardware and software.