I. Field of the Invention
This disclosure relates generally to systems, apparatus and methods for deriving a heatmap, and more particularly to minimizing system biases with different or complementary sensor measurements and/or complementary wireless signal strength measurements.
II. Background
Crowd sourcing is used in many indoor navigation venues for applications to learn locations of access points, detect whether a mobile device is indoors or outdoors, determine which floor plan to use, estimate a maps routing, etc. All of these applications require a user to carry their mobile device while the mobile device collects sensor measurements and wireless signal strength measurements. Sensor measurements include measurements from sensors such as an inertial measurement unit (IMU) and/or a magnetometer.
Unfortunately, sensors drift, which may accumulate over time. For example, an IMU may be biased in one direction or a magnetometer may consistently be off a set number of degrees. Also, a human body may interfere with wireless signal strength measurements. For example, the human body may introduce up to 10 dB of attenuation to wireless signal strength measurements. These inherent errors may introduce several meters of difference between an estimated position and an actual position.
What is needed are systems, apparatus and methods to remove sensor drift and/or attenuation caused by a human body, thereby minimizing system bias.
Disclosed are systems, apparatus and methods for deriving a heatmap in a server.
According to some aspects, disclosed is a method in a server for deriving a heatmap, the method comprising: recording a first set of sensor measurements; recording a second set of sensor measurements; recording an extra set of sensor measurements, wherein the extra set of sensor measurements has no complement; determining the first set of sensor measurements and the second set of sensor measurements form a complementary set; forming the complementary set from the first set of sensor measurements and the second set of sensor measurements; and creating the heatmap using the complementary set while excluding the extra set of sensor measurements.
According to some aspects, disclosed is a server for deriving a heatmap, the server comprising: a receiver to receive: a first set of sensor measurements; a second set of sensor measurements; and an extra set of sensor measurements; and a processor to: determine the first set of sensor measurements and the second set of sensor measurements form a complementary set; form the complementary set from the first set of sensor measurements and the second set of sensor measurements; and create the heatmap using the complementary set while excluding the extra set of sensor measurements.
According to some aspects, disclosed is a method in a server for deriving a heatmap, the method comprising: recording a first wireless signal strength measurement; recording a second wireless signal strength measurement; recording an extra wireless signal strength measurement, wherein the extra wireless signal strength measurement has no complement; determining the first wireless signal strength measurement and the second wireless signal strength measurement form a complementary set; forming the complementary set from the first wireless signal strength measurement and the second wireless signal strength measurement; and creating the heatmap using the complementary set while excluding the extra wireless signal strength measurement.
According to some aspects, disclosed is a server for deriving a heatmap, the server comprising: a receiver to receive: a first wireless signal strength measurement; a second wireless signal strength measurement; and an extra wireless signal strength measurement; and a processor to: determine the first wireless signal strength measurement and the second wireless signal strength measurement form a complementary set; form the complementary set from the first wireless signal strength measurement and the second wireless signal strength measurement; and create the heatmap using the complementary set while excluding the extra wireless signal strength measurement.
Embodiments of the invention will be described, by way of example only, with reference to the drawings.
The detailed description set forth below in connection with the appended drawings is intended as a description of various aspects of the present disclosure and is not intended to represent the only aspects in which the present disclosure may be practiced. Each aspect described in this disclosure is provided merely as an example or illustration of the present disclosure, and should not necessarily be construed as preferred or advantageous over other aspects. The detailed description includes specific details for the purpose of providing a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the concepts of the present disclosure. Acronyms and other descriptive terminology may be used merely for convenience and clarity and are not intended to limit the scope of the disclosure.
Position determination techniques described herein may be implemented in conjunction with various wireless communication networks such as a wireless wide area network (WWAN), a wireless local area network (WLAN), a wireless personal area network (WPAN), and so on. The term “network” and “system” are often used interchangeably. A WWAN may be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, Long Term Evolution (LTE), and so on. A CDMA network may implement one or more radio access technologies (RATs) such as cdma2000, Wideband-CDMA (W-CDMA), and so on. Cdma2000 includes IS-95, IS-2000, and IS-856 standards. A TDMA network may implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from a consortium named “3rd Generation Partnership Project” (3GPP). Cdma2000 is described in documents from a consortium named “3rd Generation Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN may be an IEEE 802.11x network, and a WPAN may be a Bluetooth network, an IEEE 802.15x, or some other type of network. The techniques may also be implemented in conjunction with any combination of WWAN, WLAN and/or WPAN.
A satellite positioning system (SPS) typically includes a system of transmitters positioned to enable entities to determine their location on or above the Earth based, at least in part, on signals received from the transmitters. Such a transmitter typically transmits a signal marked with a repeating pseudo-random noise (PN) code of a set number of chips and may be located on ground based control stations, user equipment and/or space vehicles. In a particular example, such transmitters may be located on Earth orbiting satellite vehicles (SVs). For example, a SV in a constellation of Global Navigation Satellite System (GNSS) such as Global Positioning System (GPS), Galileo, GLONASS or Compass may transmit a signal marked with a PN code that is distinguishable from PN codes transmitted by other SVs in the constellation (e.g., using different PN codes for each satellite as in GPS or using the same code on different frequencies as in GLONASS). In accordance with certain aspects, the techniques presented herein are not restricted to global systems (e.g., GNSS) for SPS. For example, the techniques provided herein may be applied to or otherwise enabled for use in various regional systems, such as, e.g., Quasi-Zenith Satellite System (QZSS) over Japan, Indian Regional Navigational Satellite System (IRNSS) over India, Beidou over China, etc., and/or various augmentation systems (e.g., an Satellite Based Augmentation System (SBAS)) that may be associated with or otherwise enabled for use with one or more global and/or regional navigation satellite systems. By way of example but not limitation, an SBAS may include an augmentation system(s) that provides integrity information, differential corrections, etc., such as, e.g., Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-functional Satellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system (GAGAN), and/or the like. Thus, as used herein an SPS may include any combination of one or more global and/or regional navigation satellite systems and/or augmentation systems, and SPS signals may include SPS, SPS-like, and/or other signals associated with such one or more SPS.
As used herein, a mobile device 100, sometimes referred to as a mobile station (MS 100) or user equipment (UE), such as a cellular phone, mobile phone or other wireless communication device, personal communication system (PCS) device, personal navigation device (PND), Personal Information Manager (PIM), Personal Digital Assistant (PDA), laptop or other suitable mobile device which is capable of receiving wireless communication and/or navigation signals. The term “mobile device 100” is also intended to include devices which communicate with a personal navigation device (PND), such as by short-range wireless, infrared, wireline connection, or other connection—regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device or at the PND. Also, “mobile device 100” is intended to include all devices, including wireless communication devices, computers, laptops, etc. which are capable of communication with a server, such as via the Internet, WiFi, or other network, and regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device, at a server, or at another device associated with the network. Any operable combination of the above are also considered a “mobile device 100.” A heatmap indicates an expected RF pathloss or RF signal strength received from an access point at several points on a map. A particular amount of attenuation along a path between the access point and a mobile device or the signal strength received at the mobile device may be mapped to a particular contour line of the heatmap and thus limits a position of the mobile device. A position of the mobile device may be further limited using trilateration from heatmaps of two or more additional access points. An overall heatmap is formed by overlaying heatmaps for each individual access point. A location of each access point may be known a priori or the heatmap may be used to locate individual access points. When using skewed or biased sensor measurements, a resulting heatmap may be similarly biased. For example, sensor measurements for mobile devices travelling in a common direction may introduce a common drift or sensor bias of sensor measurements and therefore skew a resulting heatmap. Using WiFi measurements from mobile devices travelling in a common direction may also favor a certain body attenuation.
Crowdsourcing provides a large number of sensor measurements and WiFi measurements. By pairing or grouping sensor measurements into complementary sets, the sensor bias may be reduced or removed from a heatmap. By requiring a number of WiFi measurements in complementary sets or from different directions, system bias may be reduced or removed from each heatmap.
A complementary set is two or more wireless measurements or two or more sensor measurements. A complementary set is collected with opposite, diverse or different moving directions, starting points or ending points and assumed to counter act error. That is, error in the measurements is assumed to cancel out, thus reducing or eliminating wireless or sensor error. For example, a complementary set may include two sets of sensor measurements, wherein the first set of sensor measurements are from a mobile device travelling from point A to point B and the second set of sensor measurements are from the mobile device travelling in the opposite direction from point B to point A. As another example, a complementary set may include more than two wireless signal strength measurements, wherein each wireless signal strength measurement comes from a mobile device on a different trajectory, wherein the different trajectories are separated by predetermined angle (e.g., 30, 45, 80 or 160 degrees). A complementary set may include only measurements from a single mobile device. Alternatively, a complementary set may include only measurements from similar mobile devices. Alternatively, a complementary set is not limited to a set of mobile devices. Wireless signal strength measurements may be adjusted by grouping and averaging the wireless signal strength measurements where some measurements are attenuation through a human body while other measurements that are not attenuation through the human body.
In the case of
In the example shown in the figure, a complementary set requires a north-south pair (i.e., northbound measurements and southbound measurements) as well as two east-west pairs (i.e., eastbound measurement of a user travelling away from the access point with westbound measurement of a user travelling towards the access point, and westbound measurement of a user travelling away from the access point with eastbound measurement of a user travelling towards the access point).
A complementary set may require a predetermined set of measurements from and/or to an access point. For example, a heatmap for a particular access point 200 at a turn of a hallway is formed with a complementary set of measurements where the complementary set requires measurements from one or more mobile devices 100 travelling north, south, east and west. Each set may be limited to a common mobile device 100 or similar mobile devices 100, or unlimited by mobile device 100.
Crossing common points A and B (e.g., as in
In the example above, two complementary measurements are paired (as in
In
In some embodiments, the server 300 may determine an absolute direction or a relative direction of the mobile device 100 relative to each access point 200. The wireless signal strength measurements may be increased based on the direction of travel of the mobile device 100 and the position of the mobile device 100 relative to a body 10. The server 300 may assume a body position relative to the access point 200 and the mobile device 100. For example, if the direction of travel is away from the access point 200, then a signal strength from the wireless signal strength measurements is increased to counter a body induced attenuation. If the direction of travel is directly towards the access point 200, then the signal strength from the wireless signal strength measurements is not adjusted because the body does not attenuate the WiFi signal received by the mobile device 100. The wireless signal strength measurements are saved to the heatmap database 400 after any direction-based adjustment.
The adjustment may be either 0 dB or a single predetermined amount. For example, wireless signal strength measurements are adjusted by 6 dB when a mobile device 100 is travelling away from an access point 200 and otherwise left unadjusted. The adjustment may be either 0 dB or plurality of discrete values. For example, as shown in
In other embodiments, WiFi measurements are not adjusted based on body attenuation. Instead pairs or sets of various measurements as discussed above are averaged together. In some embodiment, locations of various access points 200 are unknown and the derived heatmap is used to locate access points 200.
In
At 530, the server 300 records an extra set of sensor measurements, wherein the extra set of sensor measurements has no complement. That is, in the future the server 300 will not receive another set of sensor measurements (e.g., before timing out) that complements the extra set of sensor measurements. The server 300 does not know a priori that a particular set of sensor measurements will be extra or paired with one or more sets of sensor measurements.
At 540, the server 300 determines the first set of sensor measurements and the second set of sensor measurements form a complementary set. Some embodiments requiring more than two sets of sensor measurements to form a complete complementary set. For example, for a particular access point 200, a complete complementary set may require two directions from each nearby hallway before being used for a heatmap. At 550, the server 300 creates or updates the heatmap using the complementary set while excluding the extra set of sensor measurements.
In
At 620, the server 300 determines a direction of the mobile device 100 relative to an access point 200. Again, the mobile devices 100 may be a common mobile device 100 or different mobile devices 100. The direction may be a direction of travel of the mobile device 100 computed by either the mobile device 100 or the server 300 from a previous estimated position. Alternatively, the direction may be an orientation of the mobile device 100 as communicated by the mobile device 100.
At 630, the server 300 adjusts the wireless signal strength measurements to form adjusted wireless signal strength measurements based on the direction of travel. At 640, the server 300 creates or updates the heatmap using the adjusted wireless signal strength measurements and non-adjusted.
The receiver 310 may be part of a transceiver, which communicates through wired and wireless channels to a mobile device 100 through access points 200 and a communications network. The receiver 310 receives multiple sets of sensor measurements and/or wireless signal strength measurements from one or more mobile devices 100. The receiver 310 acts as a means for receiving. The received measurements may be recorded to memory 330.
The processor 320 executes software modules held in memory 330. The processor 320 acts as a means for processing. The memory 330 may be integrated with or separate from the processor 320. The software modules include a determination module 322, a heatmap module 324, a direction module 326 and/or an adjustment module 328.
The determination module 322 determines if the sets of sensor measurements form a complementary set. The complementary set may be formed with just the first and second sets of sensor measurements or may be formed with three or more sets of sensor measurements. Alternatively or in addition to, the determination module 322 determines a direction of travel of the mobile device 100 relative to an access point 200. The determination module 322 acts as a means for determination.
The heatmap module 324 creates and updates the heatmap using the complementary set while excluding the extra set of sensor measurements. The heatmap module 324 acts as a means for creating the heatmap. Alternatively or in addition to, the heatmap module 324 creates and updates the heatmap using the adjusted wireless signal strength measurements.
The direction module 326 determines a direction of travel of the mobile device 100 relative to an access point 200. The direction module 326 acts as a means for determining a direction of travel of the mobile device 100.
The adjustment module 328 adjusts the wireless signal strength measurements to form adjusted wireless signal strength measurements based on the direction of travel of the mobile device 100. The adjustment module 328 means for adjusting the wireless signal strength measurements based on the direction of travel. In some embodiments, a server for deriving a heatmap comprises a receiver, which acts as a means for recording a first set, a second set and an extra set of sensor measurements. The first set of sensor measurements complements the second set of sensor measurements. The extra set of sensor measurements has no complement. The server further comprises a processor, which acts as a means for determining the first set and second set of sensor measurements form a complementary set. The processor further acts as a means for creating the heatmap using the complementary set while excluding the extra set of sensor measurements. Furthermore, a nonvolatile memory may contain code to enable the server's receiver and processor to execute the instructions above.
The methodologies described herein may be implemented by various means depending upon the application. For example, these methodologies may be implemented in hardware, firmware, software, or any combination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.
For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory and executed by a processor unit. Memory may be implemented within the processor unit or external to the processor unit. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
If implemented in firmware and/or software, the functions may be stored as one or more instructions or code on a computer-readable medium. Examples include computer-readable media encoded with a data structure and computer-readable media encoded with a computer program. Computer-readable media includes physical computer storage media. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer; disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
In addition to storage on computer readable medium, instructions and/or data may be provided as signals on transmission media included in a communication apparatus. For example, a communication apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims. That is, the communication apparatus includes transmission media with signals indicative of information to perform disclosed functions. At a first time, the transmission media included in the communication apparatus may include a first portion of the information to perform the disclosed functions, while at a second time the transmission media included in the communication apparatus may include a second portion of the information to perform the disclosed functions.
The previous description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects without departing from the spirit or scope of the disclosure.