This is the first application filed for the present technology.
The present technology relates generally to mobile devices and, in particular, to techniques for determining elevation using mobile devices.
Location-aware mobile devices may offer a variety of different types of location-based services (LBS). A recurring challenge for LBS is determining a sufficiently accurate position for the mobile device. Outdoors, GPS (or other GNSS) positioning is generally considered to be sufficiently accurate for most LBS applications. Indoors, however, where GPS receivers may lose reception, positioning may not be possible, inhibiting the delivery of LBS. One proposed solution is to triangulate cellular signals or to triangulate RF signals from interior (in-building) transmitters. Triangulation of either cellular or in-building signals generally lacks sufficient positional accuracy to be useful for many LBS applications. Furthermore, in-building techniques require installation of transmitters, and may also require that the devices have additional hardware and/or software for position determination. Therefore, there is a need for a new or improved technique for determining the elevation of a mobile device in order to deliver LBS to the device, especially elevation-specific LBS that is to be delivered to a device inside a building where GNSS reception is poor or nonexistent.
Further features and advantages of the present technology will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
The present technology provides a novel way for one or a group of mobile devices to collect location data for the purposes of generating, or causing to be generated, an elevation model of a geographical area. This elevation model is then used to determine an elevation of a mobile device, e.g. a floor on which the mobile device is located, especially in cases where GPS or GNSS reception is not possible inside a building. This elevation information enables the delivery or elevation-specific or floor-specific location-based services (LBS).
Accordingly, one aspect of the present technology is a computer-implemented method of collecting three-dimensional location data for a plurality of locations using one or more mobile devices, wherein the location data includes coordinates of latitude and longitude and further includes corresponding altitude data, and generating an elevation model based on the three-dimensional location data.
Another aspect of the present technology is a computer-readable medium comprising instructions in code which when loaded into a memory and executed by a processor of a mobile device cause the mobile device to perform the method of the preceding paragraph.
Another aspect of the present technology is a computing device for generating an elevation model for a geographical area, the computing device comprising a communication port for receiving three-dimensional location data for a plurality of locations from one or more mobile devices, wherein the location data includes coordinates of latitude and longitude and further includes corresponding altitude data, and a processor coupled to a memory for generating an elevation model based on the three-dimensional location data.
Yet another aspect of the present technology is a mobile device for collecting data to enable generation of an elevation model for a geographical area, the mobile device comprising a position-determining subsystem for generating three-dimensional location data including coordinates of latitude and longitude in addition to altitude data, and a processor operatively coupled to a memory to receive the location data and to cause the elevation model to be generated.
Still a further aspect of the present technology is a system for generating an elevation model for a geographical area. The system includes a plurality of mobile devices that collect three-dimensional location data including coordinates of latitude and longitude in addition to altitude data. The mobile devices transmit the location data to a computing device (e.g. a server) that then generates the elevation model for the geographical area based on the location data collected by the mobile devices. The elevation model for the geographical area may then be shared with the mobile devices and/or used to deliver location-based services (LBS) such as floor-specific LBS to mobile devices situated within multi-storey buildings.
The details and particulars of these aspects of the technology will now be described below, by way of example, with reference to the drawings.
By way of overview, the present technology provides a mobile device, computer-readable medium and computer-implemented method for generating an atmospheric model using pressure and location data (that includes altitude data) collected using sensors on the device.
As depicted by way of example in
As depicted by way of example in
The mobile device 100 may include a Subscriber Identity Module (SIM) card 112 for GSM-type devices or a Re-Usable Identification Module (RUIM) card for CDMA-type devices. The RF transceiver 170 may include separate voice and data channels.
The mobile device 100 may also include one or more ports for wired connections, e.g. USB, HDMI, FireWire (IEEE 1394), etc.
The mobile device 100 includes a speech-recognition subsystem that has a microphone 180 for transforming voice input in the form of sound waves into an electrical signal. The electrical signal is then processed by a speech-recognition module (digital signal processor) to determine keywords or phrases from the voice input. Optionally, the mobile device 100 may include a speaker 182 and/or an earphone jack.
Optionally, the mobile device 100 may also include a position-determining subsystem such as a Global Positioning System (GPS) receiver 190 (e.g. in the form of a chip or chipset) for receiving GPS radio signals transmitted from one or more orbiting GPS satellites. Any other Global Navigation Satellite System (GNSS), such as GLONASS or Galileo, may be used for satellite-based positioning. Other position-determining subsystems or techniques may be used, including radiolocation techniques, signal trace techniques, Wi-Fi™ positioning system (WPS), etc. Any combination of these subsystems or techniques may also be used to provide a position fix (current location data) for the device. The position-determining subsystem may provide an altitude reading in addition to latitude and longitude coordinates. For example, GNSS receivers such as a GPS receiver can compute a GPS altitude from signals from four orbiting satellites.
Optionally, the mobile device 100 may include a Wi-Fi™ transceiver 192, a Bluetooth® transceiver 194, and/or a near-field communications (NFC) chip. The computing device 100 may also optionally include a transceiver for WiMax™ (IEEE 802.16), a transceiver for ZigBee® (IEEE 802.15.4-2003 or other wireless personal area networks), an infrared transceiver or an ultra-wideband transceiver.
Optionally, the mobile device may include other sensors like a digital compass 196 and/or a tilt sensor or accelerometer 198.
The altitude data or altitude measurements may be made using the GPS receiver 190 (another type of GNSS receiver or any other suitable position-determining subsystem capable of providing three-dimensional location data that includes latitude and longitude coordinates in addition to altitude). Alternatively, for indoor or in-building positioning, where GPS or GNSS reception is inadequate, a pressure sensor 200 may be used to determine the altitude or elevation although, as will elaborated below, the altitude data determined by the pressure sensor must be compensated or adjusted to take into consideration the local atmospheric pressure variations caused by weather.
The pressure sensor 200 may be a micro-sensor or micro-electromechanical system (MEMS) embedded inside the mobile device. For example, the pressure sensor may be a piezo-resistive pressure sensor with an IC interface such as, for example, the LPS331AP MEMS pressure sensor manufactured and sold by STMicroelectronics NV. This sensor has an absolute pressure range of 260 to 1260 mbar and a resolution of 0.020 mbar RMS. Alternatively, the MEMS pressure sensor may be a BMP180 from Bosch Sensortec GmbH. Any other equivalent pressure sensor may be used. In a variant, an external pressure sensor may be connected to the mobile device via a wired or wireless connection. The pressure sensor 200 provides pressure signals or pressure data to the processor 110 and memory 120, 130 of the mobile device 100, for example, via the IC interface.
The position-determining subsystem 190 may thus include or cooperate with the pressure sensor 200 for generating three-dimensional location data, especially when the mobile device is in indoors (inside a building). The location data thus provides coordinates of latitude and longitude in addition to altitude data. In other words, the location data includes both a horizontal measurement and a vertical measurement. The processor and memory of the mobile device receive the location data from the subsystem 190 and/or pressure sensor 200 and cause the elevation model to be generated, either locally on the mobile device or remotely on a computing device 250, which may be a server, server cluster, another mobile device, or a group of mobile devices, or any combination thereof. Thus, in one embodiment, the processor is configured to cause a radiofrequency transceiver to transmit the location data to another computing device 250 for generation of the elevation model. In another embodiment, the processor is configured to generate the elevation model.
Generating the elevation model may be done, in one implementation, by clustering altitude data based on location (within a predetermined radius or distance tolerance). This clustering may be performed by the mobile device 100 or by the other remote computing device 250. Clustering the altitude data enables the mobile device 100 or computing device 250 to identify ground-level measurements and off-the-ground measurements taken at an elevation above ground level. A height of a building or other manmade structure may then be determined based on the measurements. By applying assumptions about the average height of a typical floor, or by noting the discrete elevations, the number of floors in the building may be estimated. This information may be added to the elevation model. The elevation model thus serves as a three-dimensional model or earth relief model of a geographical area.
The processor of the mobile device 100 and/or the computing device 250 can then determine a floor where the mobile device is currently located. Location-based services (LBS) for a specific floor of the building can be requested and/or received.
This novel method of generating an elevation model is summarized in
An elevation map 400 based on the elevation model may be generated and optionally also displayed as shown by way of example in
The generation of the elevation model may be done by the mobile device that is collecting the data or by a group (ad hoc network) of mobile devices that is collecting and sharing data amongst each other. The generation of the elevation model may also be done by a computing device, e.g. a server, server cluster, cloud, etc. that receives via a communication port the three-dimensional location data for a plurality of locations from one or more mobile devices. The computing device has a processor coupled to a memory for generating the elevation model based on the three-dimensional location data.
As noted above, where the mobile device is indoors and unable to receive GNSS signals, a pressure sensor 200 provides the altitude data. This altitude data is adjusted or compensated for local weather conditions.
The weather conditions may be obtained over the air from a conventional weather service linked to ground-based weather stations, from airborne weather stations, or from any other source of weather data. In another implementation, the weather data may be obtained from a localized weather model or atmospheric model generated using pressure and location data obtained by mobile devices in the area. The latter implementation is useful where the weather stations are far from the current location where the pressure sensor data is to be weather-compensated.
The atmospheric model may be generated by any computing device or group of devices such as the mobile device based on data collected by mobile devices in the area, the data, a group of mobile devices, a server, a server cluster or a cloud computing environment. One technique thus entails obtaining an atmospheric model for the geographical area to compensate pressure measurements obtained by the pressure sensor, the atmospheric model being generated based on location and pressure data collected by mobile devices in the geographical area. These may be the same mobile devices that provide the elevation data or other group of devices or a subset or superset of the devices.
The altitude data obtained by the devices may be AMSL or GPS Altitude. These concepts, and some related altitude concepts, are now reviewed to facilitate understanding of this novel technology.
Above Mean Sea Level (AMSL) is the absolute height above the point where the sea level would be if a trench was dug from that point to the sea and sea water was permitted to pass freely between the sea and the trench. This is a gravity-based definition such as the one defined in the Earth Gravitational Model (EGM96).
GPS Altitude is the altitude above or below the WGS84 ellipsoid, a model of the Earth used by GPS. Similar models are used in most GNSS systems. As pressure changes with gravity, GPS altitudes must be converted to AMSL altitudes before applying atmospheric equations.
ISO/US/ICAO Standard Atmosphere is the standard atmospheric model assuming no weather, and the following conditions at 0 AMSL: 15 C, 101325 Pa, 1.98 C/1000 ft lapse rate.
Pressure Altitude is the altitude calculated from pressure assuming ICAO standard atmosphere. No corrections are made for weather or temperature.
Estimated AMSL Altitude is the altitude calculated from pressure correcting for temperature and local weather (high/low pressure regions). This value should equal AMSL Altitude.
Users expect to see AMSL Altitude, that is, a constant altitude for a fixed point that corresponds to a reference point such as sea level. The absolute pressure sensor provides a pressure reading from which Pressure Altitude is easily calculated. Unfortunately, Pressure Altitude may have up to 1000 ft of difference from AMSL Altitude, depending on the current weather, making this value behave differently than expected by the user.
Given a weather model, the Estimated AMSL Altitude can be calculated from the pressure for the current location—this is equal to the desired AMSL Altitude.
It is also possible to obtain an AMSL Altitude and location from GPS (or other position-determining sources such as cellular triangulation, Wi-Fi positioning, NFC, or manual input.) depending on the accuracy of the specific source. In the case of GPS, the altitude would be converted from GPS Altitude to AMSL Altitude.
In general terms, the mobile device 100 generates the atmospheric model by determining an Above Mean Sea Level (AMSL) altitude using a position-determining subsystem (e.g. GPS receiver 190) and determining a pressure altitude using the pressure sensor 200, calculating a difference or delta between the pressure altitude and the AMSL altitude, and then calculating a temperature at sea level based on the AMSL altitude and the pressure altitude, as will be elaborated below. The calculation of the temperature at sea level may be accomplished in one implementation by performing a linear regression on an equation AMSL altitude=offset+ScaleFactor*PressureAltitude to solve for the offset and the ScaleFactor and by then estimating the temperature at sea level as 1-ScaleFactor=(T−15)/3. Thereafter, the atmospheric model for pressure is generated based on the AMSL altitude and temperature at altitude using a lapse rate of 1.98 C/1000 ft (6.5 C per km).
Generating the atmospheric model may proceed as depicted in the flowchart of
1. Collect a set of measurements: <device, time, location, pressure, AMSL Altitude>, as shown in step 600. The AMSL altitude may be determined at substep 361 using a position-determining subsystem, e.g. a GPS receiver capable of providing GPS altitude. The GPS position fix may be aided or assisted using Assisted GPS or Aided GPS. The pressure readings obtained using the pressure sensor 200 provide the Pressure Altitude at substep 610.
2. Pre-filter AMSL Altitude measurements per device based on accuracy, time consistency with pressure changes (i.e. reject inconsistent readings), as shown in step 620.
3. For each device, as shown in step 630, calculate or estimate the difference between Pressure Altitude and AMSL Altitude for short periods (assuming the mean location). This difference corresponds to the weather effect and the temperature effect combined, and provides an altimeter setting for that time, location, and altitude.
a) The weather effect is a constant offset, independent of the altitude.
b) The temperature effect is a scale factor on altitude proportional to temperature.
4. As weather effects (low pressure/high pressure regions) usually extend over a large area (which can be any arbitrary area, e.g. ˜100 km2 or a 100 km radius or any other area which may be user-configurable), and are generally assumed to be slow to change, choose a set of measurements over the approximate 100 km2 area and over about 0.5 to 1 hour (i.e. 30-60 minutes) or any other suitable time period, which is also user-configurable. Then perform a linear regression (step 640) on the equation AMSL Altitude=offset+ScaleFactor*PressureAltitude and solve for offset and ScaleFactor.
5. Calculate or approximate the temperature at sea level as 1-ScaleFactor=(T−15)/3 at step 650. In another embodiment, a different ScaleFactor equation may be substituted.
6. This produces at step 660 a model for pressure: AMSL Altitude and temperature at altitude (1.98 C/1000 ft) lapse rate, i.e. 6.5 C per km, which is constant up to an altitude of 11 km. In another embodiment, a different lapse rate may be used.
In one embodiment, the processor of the mobile device is configured to determine the AMSL altitude by obtaining a GPS altitude reading from the GPS receiver 190 in the mobile device. The processor is configured to then convert the GPS altitude to the AMSL altitude.
The processor is then configured to determine weather conditions using the atmospheric model for the purposes of compensating for the effect of weather (i.e. weather-related variations in barometric pressure) on the pressure readings of the pressure sensor. The pressure readings are particularly important for mobile devices that are inside multi-storey buildings that inhibit the reception of GPS (or other GNSS) signals from orbiting satellites.
The data that contribute to the generation of the elevation model may derive from a single mobile device or, more efficiently, from a group or plurality of mobile devices that together constitute an ad hoc network of mobile devices. Computations for the generation of the model may be performed on a server or on one or more of the mobile devices or any combination thereof.
In the foregoing embodiments, the atmospheric model is generated for a localized area, e.g. 100 square km, by using pressure readings from mobile devices within that localized area. In another embodiment, atmospheric models for adjoining areas may be combined to form larger scale models or composite models of multiple adjoining areas. In other words, a first atmospheric model for a first area may be combined, joined or aggregated with a second atmospheric model for a second area. This concept may be extrapolated so that a plurality of atmospheric models for a plurality of contiguous or adjoining areas are combined or aggregated to produce a large-scale composite atmospheric model covering a much larger area. In theory, this technique may be used to generate a model for all habited areas of the Earth where mobile users are situated.
The geographical area for the elevation model may or may not correspond to the area for the atmospheric model. Likewise, the mobile devices that provide the atmospheric model may not necessarily be the same as the devices that provide the elevation model.
Any of the methods disclosed herein may be implemented in hardware, software, firmware or any combination thereof. Where implemented as software, the method steps, acts or operations may be programmed or coded as computer-readable instructions and recorded electronically, magnetically or optically on a fixed or non-transitory computer-readable medium, computer-readable memory, machine-readable memory or computer program product. In other words, the computer-readable memory or computer-readable medium comprises instructions in code which when loaded into a memory and executed on a processor of a computing device cause the computing device to perform one or more of the foregoing method(s).
A computer-readable medium can be any means that contain, store, communicate, propagate or transport the program for use by or in connection with the instruction execution system, apparatus or device. The computer-readable medium may be electronic, magnetic, optical, electromagnetic, infrared or any semiconductor system or device. For example, computer executable code to perform the methods disclosed herein may be tangibly recorded on a computer-readable medium including, but not limited to, a floppy-disk, a CD-ROM, a DVD, RAM, ROM, EPROM, Flash Memory or any suitable memory card, etc. The method may also be implemented in hardware. A hardware implementation might employ discrete logic circuits having logic gates for implementing logic functions on data signals, an application-specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
This invention has been described in terms of specific embodiments, implementations and configurations which are intended to be exemplary only. Persons of ordinary skill in the art will appreciate, having read this disclosure, that many obvious variations, modifications and refinements may be made without departing from the inventive concept(s) presented herein. The scope of the exclusive right sought by the Applicant(s) is therefore intended to be limited solely by the appended claims.