Perspective line estimator
A hidden Markov model-based approach reweights satellite signals to improve location estimation accuracy in GNSS systems by distinguishing between LOS and NLOS signals, addressing inaccuracies in difficult signal environments.
Patent Information
- Application Number
- JP2024571009
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-01-26
- Filing Date
- 2023-05-31
- Publication Date
- 2025-07-08
AI Technical Summary
Existing location estimation systems for electronic devices using Global Navigation Satellite System (GNSS) signals face inaccuracies in difficult signal environments due to insufficient line-of-sight (LOS) signals, often relying on non-line-of-sight (NLOS) signals that are misinterpreted, leading to inaccurate positioning.
Implementing a probabilistic method using a hidden Markov model to reweight satellite signals based on the likelihood of being LOS or NLOS, incorporating additional positioning techniques like Wi-Fi and inertial navigation, to improve location estimation accuracy by assigning weights to signals based on their probability of being LOS.
Enhances location estimation accuracy by effectively utilizing both LOS and NLOS signals, reducing errors in positioning estimates in challenging environments.
Smart Images

Figure 2025521169000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 349,036, filed on June 3, 2022, entitled "LINE OF SIGHT ESTIMATOR", the contents of which are hereby incorporated by reference in their entirety and constitute a part of this U.S. patent application for all purposes.
[0002] This description generally relates to an electronic device, for example, including a line - of - sight estimator for an electronic device.
Background Art
[0003] Electronic devices, such as navigation systems for vehicles equipped with laptops, tablets, smartphones, wearable devices, or mobile devices, may include a receiver configured to receive signals from Global Navigation Satellite System (GNSS) satellites to estimate the location of the electronic device. Typically, multiple satellite signals can be received to determine the location (e.g., 3 for triangulation and 1 for time synchronization).
[0004] The specific features of the technology of this application are set forth in the appended claims. However, for purposes of explanation, some embodiments of the technology of this application are shown in the following figures.
Brief Description of the Drawings
[0005]
Figure 1
[0006]
Figure 2
[0007]
Figure 3
[0008]
Figure 4
[0009]
Figure 5
[0010]
Figure 6
[0011]
Figure 7
[0012]
Figure 8
Best Mode for Carrying Out the Invention
[0013] The detailed description set forth below is intended as a description of various configurations of the technology of the present application and is not intended to represent the only configuration by which the technology of the present application can be implemented. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details to provide a complete understanding of the technology of the subject matter. However, the technology of the present application is not limited to the specific details shown herein and can be implemented using one or more other implementations. In one or more implementations, the structures and components are shown in block diagram form to avoid obscuring the concepts of the technology of the present application.
[0014] A location estimation system implemented by an electronic device may include a receiver (e.g., a satellite receiver) configured to receive satellite signals (e.g., signals from Global Navigation Satellite System (GNSS) satellites) to estimate the location of the electronic device. Signals received from GNSS satellites can be line-of-sight (hereinafter, "LOS"), non-line-of-sight (hereinafter, "non-LOS" or "NLOS"), or a combination thereof (e.g., multipath). Typically, a certain number of received LOS signals are required by a location estimation system to accurately estimate the location of an electronic device.
[0015] However, when the received signals do not contain a sufficient number of LOS signals (e.g., when one or all of the received signals are NLOS signals), the position estimation is likely to be inaccurate. This can occur in difficult signal environments such as urban valleys, areas with dense foliage, areas near or inside structures such as buildings, and / or other areas that may interfere with LOS reception of the signals. Difficult signal environments can result in fewer LOS signals and / or more NLOS signals being received by an electronic device. For example, in a difficult signal environment, one or more structures may cause complete blockage of the LOS signal, and the received signal may become a reflection (e.g., NLOS). An NLOS signal can be the only path from a GNSS transmitter to a receiver, but can still be misinterpreted by a receiver that uses a simple LOS model for measurement (e.g., due to environmental attenuation). In the signal environments described above, fewer LOS signals may be available (e.g., due to interference caused by the environment), and the available NLOS signals tend to result in less accurate measurements on the device.
[0016] In the systems, methods, and non-transitory machine-readable media of the subject matter, probabilistic methods are performed to assist GNSS positioning, e.g., to compensate for incomplete and / or distorted GNSS signal information in difficult signal environments. For example, accuracy improvements can be achieved by reweighting satellite signals to better utilize both LOS and NLOS signals based on the probabilities of various location signals determined to be LOS by a hidden Markov model. The probability that a signal is LOS can be set based at least on the estimated location of the electronic device (e.g., via Wi-Fi positioning determined from an access point), the signal strength of the location signal, and / or a multipath indicator set based on the pre-processed received signal. One or more satellite signals can be assigned weights such that, for example, the lower the likelihood that a signal is LOS, the smaller the weight assigned to the signal. The electronic device can then estimate its position in one or more implementations using the LOS and NLOS signals with the assigned weights.
[0017] Figure 1 shows an exemplary environment in which an electronic device 102 may use one or more NLOS satellite signals (e.g., satellite signal 105d) along with GNSS positioning to estimate a device location in one or more implementation forms. However, not all of the depicted components may be used in all implementation forms, and one or more implementation forms may include additional or different components than those shown in the figure. Without departing from the spirit or scope of the claims set forth herein, variations in the composition and type of components can be made. Additional components, different components, or fewer components may be provided.
[0018] Environment 100 includes an electronic device 102 and GNSS satellites 104a, 104b, 104c, and 104d (hereinafter, "satellites 104a - 104d") transmitting satellite signals 105a, 105b, 105c, and 105d (hereinafter, "satellite signals 105a - 105d"). The environment also includes buildings 106a, 106b, 106c, and 106d (hereinafter, "buildings 106a - 106d"). Buildings 106a - 106d may represent any structure or land formation that obstructs the path of satellite signals. For illustration purposes, environment 100 is shown in FIG. 1 as including one electronic device 102, four satellites 104a - 104d, four satellite signals 105a - 105d, four buildings 106a - 106d, and an access point 108. However, environment 100 may include any number of electronic devices, satellites, satellite signals, buildings, or access points.
[0019] The electronic device 102 may be, for example, a portable computing device such as a laptop computer, a smartphone, a device embedded in a vehicle, an installed device, and / or a coupled device, a peripheral device (e.g., a digital camera, headphones), a tablet device, a smartwatch, a wearable device such as a band, or any other suitable device including one or more wireless interfaces such as GNSS wireless communication, WLAN wireless communication, cellular wireless communication, Bluetooth wireless communication, Zigbee wireless communication, near field communication (NFC) wireless communication, and / or other wireless communication. In FIG. 1, as an example, the electronic device 102 is depicted as a smartphone. The electronic device 102 may be the electronic device described below with respect to FIG. 3, and / or the electronic system described below with respect to FIG. 8, and / or may include all or part of them.
[0020] In the example of FIG. 1, the electronic device 102 is held by the user or otherwise coupled to the user (e.g., via a pocket or a strap). However, the electronic device 102 may be coupled to a vehicle and / or may be included within a vehicle. In the example of FIG. 1, the user is moving on foot (e.g., walking). However, the user may be moving within a vehicle (e.g., an automobile, a motorcycle, a bicycle, or a land vehicle such as a ship or an aircraft), through water such as swimming, or by other means.
[0021] In the environment 100, the electronic device 102 can determine its location based on satellite signals 105a - 105d received from satellites 104a - 104d. For example, the satellites 104a - 104d may be compatible with one or more of the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the Galileo positioning system, and / or generally any positioning system.
[0022] For example, the electronic device 102 can determine its individual location (e.g., longitude, latitude, and altitude / elevation) using satellite signals 105a - 105d received from satellites 104a - 104d. As described herein, the electronic device 102 can perform position estimation (e.g., GNSS position estimation determined based on satellite signals 105a - 105d received from satellites 104a - 104d) in an environment where one or more received signals can be NLOS (e.g., environment 100), or in an environment where the received signals are not NLOS, by weighting the satellite signals (e.g., using a hidden Markov model such as a hidden Markov model stored in the local memory of the electronic device 102).
[0023] Other positioning techniques (not shown) can be used independently of or in conjunction with GNSS (e.g., satellites 104a - 104d) to determine the device location. For example, the location of the electronic device 102 can be determined based on the arrival time, arrival angle, and / or signal strength of signals received from a wireless access point (e.g., access point 108) that may have a known location (e.g., attached to a street lamp, inside a building or store). Alternatively or additionally, without limitation, positioning techniques such as cellular phone signal positioning (e.g., positioning using a cellular network and mobile device signals), Bluetooth signal positioning, and / or image recognition positioning can be used to determine the device location.
[0024] Furthermore, the electronic device 102 can implement an inertial navigation system (INS). The INS uses device sensor(s) (e.g., motion sensors such as accelerometers, gyroscopes) to calculate device state (e.g., device position, velocity, attitude) and / or user state (e.g., user velocity, position) to supplement the location data provided by the above - mentioned positioning techniques for estimating the device location.
[0025] In environment 100, buildings 106a - 106d may cause interference between satellites 104a - 104d and electronic device 102. In the example of FIG. 1, buildings 106a - 106d create a dense urban environment that may prevent one or more signals from satellites 104a - 104d from reaching the electronic device directly. For example, the direct LOS signal from satellite 104d is blocked from being directly received at electronic device 102 by building 106c, while satellite signal 105d is reflected from building 106b before reaching electronic device 102 and is thus an NLOS signal. Conversely, satellite signals 105a - 105c are shown in FIG. 1 as being received directly at electronic device 102 from the corresponding satellites 104a - 104c and are thus referred to as LOS signals. In one or more implementations, one or more satellite signals from one or more of satellites 104a, 104b, and / or 104c, where the LOS satellite signals 105a - 105c are received at electronic device 102, may also be reflected from one or more of buildings 106a - 106d and be received at electronic device 102 as multipath signals (e.g., LOS and NLOS signals from the same satellite). The aim of the subject system is to improve the classification and / or utilization of NLOS signals (e.g., signals from satellite 104d) in a dense environment when insufficient LOS signals are available.
[0026] FIG. 2 shows an exemplary network environment for providing one or more LOS estimators to an electronic device for use with GNSS positioning, according to one or more implementations. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figure. Modifications to the configuration and type of components can be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.
[0027] The network environment 200 includes an electronic device 102, a network 202, and a server 204. The network 202 may communicatively couple (directly or indirectly), for example, the electronic device 102 and the server 204. In one or more implementations, the network 202 can include the Internet and / or can be communicatively coupled to the Internet, and can be an interconnected network of devices. For purposes of illustration, the network environment 200 is shown in FIG. 2 as including a single electronic device 102 and a single server 204, but the network environment 200 can include any number of electronic devices and any number (e.g., more than or less than one) of servers.
[0028] In one or more implementations, the electronic device 102 can be configured to communicate with or otherwise interact with the server 204. In one or more implementations, the electronic device 102 can receive one or more statistical models and / or machine learning models, such as a hidden Markov model, from the server 204 or can provide satellite signal data to estimate device location. In one or more implementations, the electronic device 102 can be provisioned with firmware and / or operating system code that can include one or more statistical models and / or machine learning models, for example, at manufacturing time or at any time thereafter. The electronic device 102 can be the device described below with respect to FIG. 3 and / or the electronic system described below with respect to FIG. 8, and / or can include all or a portion of them.
[0029] Server 204 may be an electronic system described below with respect to FIG. 8 and / or may include all or part thereof. Server 204 may include one or more servers, such as a server cloud, that can be used to generate one or more statistical and / or machine learning models, such as a hidden Markov model. For example, as further described below with respect to FIG. 4, Server 204 may generate one or more statistical and / or machine learning models, such as a hidden Markov model, based on GNSS receiver calculations and based on reference data corresponding to ground truth information. In one or more implementations, Server 204 can provide one or more generated statistical models and / or machine learning models, such as a hidden Markov model, to Electronic Device 102, for example, for local storage on Electronic Device 102, and / or one or more of the statistical models and / or machine learning models may be included in firmware and / or operating system code provisioned on Electronic Device 102.
[0030] For illustration purposes, a single server 204 is shown and described with respect to various operations such as generating one or more statistical and / or machine learning models, such as a hidden Markov model, and providing one or more statistical and / or machine learning models, such as a hidden Markov model. However, these operations and other operations described herein may be performed by one or more servers, and each different operation may be performed by the same server or different servers. In one or more implementations, one or more statistical models and / or machine learning models, such as a hidden Markov model, may be stored directly on the electronic device 102 before the electronic device 102 is provided to a user, for example, during or prior to the manufacture of the electronic device 102. In one or more other implementations, one or more models, such as a hidden Markov model, may be generated in the electronic device 102, stored in the electronic device 102, and / or distributed to one or more other electronic devices. In one or more implementations, the server 204 may be responsible for updating one or more statistical models and / or machine learning models, such as a hidden Markov model, for almost (or all) geographic areas possible using data collected since a previous process.
[0031] FIG. 3 shows an exemplary electronic device 102 that may implement a system for estimating the location of an electronic device according to one or more implementations. For illustration purposes, FIG. 3 is described herein primarily with reference to the electronic device 102 of FIG. 1. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Modifications to the configuration and type of components can be made without departing from the spirit or scope of the claims presented herein. Additional components, different components, or fewer components may be provided.
[0032] The electronic device 102 may include one or more of a host processor 302, a memory 304, one or more sensors 306, a positioning circuit 308, and / or a communication interface 310. The host processor 302 may include suitable logic, circuitry, and / or code that enables it to process data and / or control the operation of the electronic device 102. In this regard, the host processor 302 may be capable of providing control signals to various other components of the electronic device 102. The host processor 302 may also control the transfer of data between various parts of the electronic device 102. The host processor 302 may enable an implementation of an operating system or otherwise execute code to manage the operation of the electronic device 102. Further, the host processor 302 may implement a location estimator that is further described below with respect to FIG. 5.
[0033] The memory 304 may include suitable logic, circuitry, and / or code that enables it to store various types of information such as received data, generated data, code, and / or configured information. The memory 304 may include, for example, random access memory (RAM), read only memory (ROM), flash, and / or magnetic storage devices. In one or more implementations, the memory 304 may store a hidden Markov model (such as provided by the server 204) to facilitate the estimation of the device location. The memory 304 may further store GNSS receiver data, wireless network reception data, sensor signal measurements, and / or device location estimates based on, for example, the location of the electronic device 102.
[0034] The sensor(s) 306 may include one or more motion sensors, such as one or more accelerometers, one or more rate gyroscopes, and / or any combination / number thereof (e.g., a triple), etc. These sensors may be used, for example, to detect the movement, direction, and orientation of the electronic device 102 and to facilitate functions related to the movement and orientation of the electronic device 102.
[0035] Alternatively or additionally, the sensor(s) 306 may include one or more of generally any sensor that may be used to facilitate a barometer, an electronic magnetometer, or a positioning system. The barometer may be utilized to detect atmospheric pressure for use in determining altitude changes of the electronic device 102. An electronic magnetometer (e.g., an integrated circuit chip) can provide data used, for example, to determine the direction of magnetic north for use as an electronic compass.
[0036] The positioning circuit 308 may be used in determining the location of the electronic device 102 based on positioning techniques. For example, the positioning circuit 308 may provide one or more of GNSS positioning (e.g., via a receiver configured to receive satellite signals 105a - 105d from satellites 104a - 104d), wireless access point positioning (e.g., via a wireless network receiver configured to receive signals from a wireless access point), cellular phone signal positioning, Bluetooth signal positioning (e.g., via a Bluetooth receiver), image recognition positioning (e.g., via an image sensor), and / or INS (e.g., via motion sensors such as any number of accelerometers and / or gyroscopes). The positioning circuit 308 may also be used in applying weights and / or other adjustments to received signals. For example, the electronic device 102 may determine that a signal is NLOS and apply a weight to the NLOS signal to reduce its impact on the location deamination of the positioning circuit 308.
[0037] The communication interface 310 may include suitable logic, circuitry, and / or code to enable wired or wireless communication, such as between the electronic device 102 and the server 204. The communication interface 310 may include, for example, a Bluetooth communication interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, a cellular interface, or generally one or more of any communication interfaces.
[0038] In one or more implementations, one or more of the host processor 302, the memory 304, the sensor(s) 306, the positioning circuit 308, the communication interface 310, and / or one or more portions thereof may be implemented in software (e.g., subroutines and code), hardware (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gate logic, discrete hardware components, or any other suitable device), and / or a combination of both.
[0039] FIG. 4 shows an exemplary process 400 for generating one or more probability models (e.g., the hidden Markov model 412) according to one or more implementations. For purposes of explanation, the operations of process 400 are described herein as occurring sequentially or linearly. However, multiple blocks of process 400 may occur in parallel. Additionally, the operations of process 400 need not be executed in the order shown, and / or one or more operations of process 400 need not be executed, and / or may be replaced by other operations.
[0040] To begin generating the hidden Markov model 412, training / test data 408 can be collected. In one or more implementations, GNSS receiver calculations and / or reference device calculations at various locations can be collected. For example, an operator or operatorless vehicle can move along a route, and the operator and / or vehicle can be equipped with a GNSS receiver (e.g., a mobile device having a GNSS receiver such as electronic device 102) and a reference device including one or more high-precision location sensors having a higher precision than the GNSS receiver and / or not affected by the aforementioned difficult signal environments.
[0041] In one or more implementations, the reference device can determine a position estimate independently of GNSS satellites and / or the GNSS system. For example, the reference device may include a direction measurement device (e.g., a compass), a distance measurement device (e.g., a wheel having a known circumference), and / or an INS, and / or may be communicatively coupled thereto, and the reference device may determine a position estimate based on measurements received from the compass and / or the distance measurement device.
[0042] At multiple locations, location estimates (e.g., GNSS measurements such as signal strength) can be collected from the GNSS receiver, and location estimates can be collected from the high-precision location sensors of the reference device. For example, the location estimates can correspond to the longitude, latitude, and / or altitude / elevation estimates of the GNSS receiver, and these estimates can be included as part of the training / test data 408.
[0043] Furthermore, the training / test data 408 may include other parameters provided by the GNSS receiver, such as the parameters used by the GNSS receiver to determine the location estimate. For example, these parameters may indicate or, in some cases, correspond to the position of the GNSS receiver (e.g., electronic device 102) relative to a GNSS satellite (e.g., one of satellites 104a - 104d) that provides a LOS site signal for device location estimation.
[0044] Examples of these parameters include pseudorange (e.g., the distance between the GNSS receiver and the GNSS satellite measured by multiplying the time it takes for the signal to propagate from the satellite to the receiver by the speed of light), pseudorange uncertainty (e.g., the confidence value of the pseudorange), range rate (e.g., the rate of change of the distance between the GNSS receiver and the GNSS satellite), range rate uncertainty (e.g., the confidence value of the range rate), multipath indicator (e.g., a value indicating whether the signal provided by the GNSS satellite to the GNSS receiver is a multipath signal, present, not present, or unknown), altitude above the horizon (e.g., of the GNSS satellite), azimuth (e.g., the angle from north to east), whether the measurement was used in the generation of a position fix on the GNSS receiver, and / or the position fix location (corresponding to the location estimate as provided by the GNSS receiver, e.g., latitude, longitude, height above the ellipsoid), but are not limited thereto. Other parameters that may be included as part of the training / test data 408 include satellite identifiers (e.g., constellation, band, carrier frequency, and / or satellite number) for the GNSS satellites, measurement latency, carrier tracking state (e.g., tracking, cycle slip detection, no cycle slip), carrier tracking uncertainty, position fix uncertainty (e.g., horizontal component, vertical component), the number of satellites used in the position fix, and / or horizontal dilution of precision (HDOP).
[0045] In one or more implementations, the location estimate, along with other information collected by the GNSS receiver and / or reference device, can be used to determine whether the received satellite signal is a LOS signal. For example, the GNSS receiver and / or reference device can determine that the satellite signal is no longer LOS based on an increase in uncertainty (e.g., pseudorange uncertainty, range rate uncertainty, and / or other forms of uncertainty).
[0046] Furthermore, at multiple locations, non-satellite signals and their attributes can be collected. For example, the non-satellite signal can be a Wi-Fi signal from access point 108, and its attributes can include SSID, signal strength, frequency, channel, etc. The information collected regarding the non-satellite signal can be correlated with the information regarding one or more GNSS satellites. For example, the SSID can be associated with latitude and longitude.
[0047] Accordingly, the training / test data 408 can include one or more of the parameters described above. As described above, the training / test data 408 can be obtained by an operator and / or vehicle equipped with a GNSS receiver and reference device. Further, the training / test data 408 can be obtained across multiple similarly equipped operators / vehicles such that the database of training / test data 408 contains a sufficient amount of measurements to generate, configure / train, and / or test the hidden Markov model 412.
[0048] In addition to or instead of the operator and / or vehicle examples described above, it is possible to provide reference data along with a known road network corresponding to the map data. In this example, the known road network may correspond to reference device calculations, GNSS receiver calculations may be provided in a cloud-sourced manner, and locations along the known road network are compared to location estimates provided by the end user's device (e.g., electronic device 102). One or more of this data and the other aforementioned parameters may be collected and stored as training / test data 408 in a way that preserves the anonymity and privacy of the end user.
[0049] In one or more implementations, the training / test data 408 may also include one or more specific cities or other geographic areas, and / or 3D building models such as generally urban areas. When combined with the reference position and satellite locations, the building models can be used to determine whether there is a LOS path to each satellite and / or whether the path to a given satellite is blocked by one or more buildings. Determining whether there is a LOS path to each satellite enables binning of the training / test data 408 as LOS and NLOS. The data within the LOS bins and NLOS bins can be analyzed to obtain one or more of the aforementioned statistical and / or machine learning models.
[0050] In block 410, the training / test data 408 can be split in one or more implementations to determine a training data set and a test data set for the hidden Markov model 412. For example, the training data set obtained from the training / test data 408 can be used to initially train / configure the hidden Markov model 412. In one or more implementations, the test data set obtained from the training / test data 408 can be used to adjust the hidden Markov model 412 based on the initial training. The training / test data 408 can be partitioned by labeled categories (e.g., classification, status, and / or the like). For example, a particular set of information can be labeled (e.g., binned) as being derived from LOS or NLOS satellite signals. In one or more implementations, the training / test data 408 can be binned into LOS and NLOS, in which case the training / test data 408 can be separately partitioned into each bin.
[0051] In block 411, the hidden Markov model 412 is configured. The configuration can include training and testing of the hidden Markov model. Examples of algorithms used to train and / or test the hidden Markov model 412 include, but are not limited to, the expectation maximization algorithm and the forward-backward algorithm. Thus, the hidden Markov model 412 is generated to determine the probability that a satellite signal given to the hidden Markov model 412 is a LOS signal (e.g., hidden state) based on the training / test data 408 (e.g., observed variables).
[0052] In one or more implementations, the hidden Markov model 412 can be periodically updated with new measurement error data to generate a new updated hidden Markov model 412. For example, this type of update method can provide improved maintainability and reduced computational overhead.
[0053] FIG. 5 shows an example of a location estimator 500 of a system of a subject matter that can be implemented by an electronic device 102 according to one or more implementations. For example, the location estimator 500 can be implemented by one or more software modules executed on a host processor 302 of the electronic device 102. In another example, the location estimator 500 can be implemented by custom hardware (e.g., one or more coprocessors) configured to execute the functions of the location estimator 500. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Modifications to the configuration and type of components can be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.
[0054] In one or more implementations, the positioning circuit 308 of the electronic device 102 can include a location estimator 500, a signal corrector 504, and a hidden Markov model 412. For example, the hidden Markov model 412 may be stored in the server 204. Next, the server 204 can provide a copy of the hidden Markov model 412 to the electronic device 102 via the network 202, and the electronic device 102 can store the hidden Markov model 412 locally (e.g., in the memory 304 of the electronic device 102). In one or more implementations, the hidden Markov model 412 can be stored on the electronic device 102 during or before manufacturing, e.g., before the electronic device 102 is provided to the user. In one or more implementations, the hidden Markov model 412 can be generated (e.g., trained and stored) in the electronic device 102. Although the hidden Markov model is described herein with respect to various examples, it should be understood that other statistical and / or machine learning models can be used (e.g., trained and deployed to generate LOS probabilities based on the input data 502).
[0055] In one or more implementations, the hidden Markov model 412 can be specific to a particular city, a particular satellite, and / or a particular set of satellites. For example, the electronic device 102 can download a hidden Markov model 412 specific to a city (e.g., when each machine learning model is trained and tested for different cities such as New York, San Francisco, and Los Angeles). Alternatively or additionally, the hidden Markov model 412 can be specific to a certain type of environment such that each hidden Markov model is trained and tested for a different environment (e.g., dense city, city, suburb). The electronic device 102 can be configured to download (e.g., automatically or by prompting the user) an appropriate hidden Markov model 412 based on the general location of the electronic device 102 and store the hidden Markov model 412 locally.
[0056] For example, to prevent NLOS signals from corrupting the location estimate based on LOS signals while still allowing NLOS signals to be used to assist in the location estimate, the output of the hidden Markov model 412 (e.g., the probability that a satellite signal is LOS) can be used to modify a portion of the input data 502 using the signal modifier 504.
[0057] As described above, the hidden Markov model 412 may be trained and tested based on parameters similar to the inputs to the location estimator 500. The hidden Markov model 412 can be configured to output the probability that a satellite signal (e.g., from the input data 502) is LOS with respect to one or more GNSS satellites. This probability (e.g., output by the hidden Markov model 412) can be an indication of how usable the NLOS satellite signals can be when determining the location using other satellite signals included with the input data 502.
[0058] Satellite signals that are more likely to be LOS (e.g., above a probability threshold) are treated as LOS signals and thus may not be modified by the signal corrector 504 before being used by the location estimator 500 to determine the estimated device location 506. In one or more implementations, satellite signals that are more likely to be LOS may be reweighted by the signal corrector 504 (e.g., in proportion to or otherwise based on the LOS probability for that satellite signal) so as to be more significant when used by the location estimator 500 to determine the estimated device location 506.
[0059] Satellite signals that are less likely to be LOS may be reweighted by the signal corrector 504 (e.g., in proportion to or otherwise based on the LOS probability for that satellite signal) so as to be less important when used by the location estimator 500 to determine the estimated device location 506 (e.g., according to process 700 described below). Additionally or alternatively, satellite signals that are less likely to be LOS (e.g., below a probability threshold) may be discarded and / or replaced by another available satellite signal included with the input data 502 for use by the location estimator 500 to determine the estimated device location 506. In this way, the signal corrector 504 can modify the satellite signals in the input data 502 by weighting the satellite signals according to their respective probabilities of being LOS signals.
[0060] Alternatively or additionally, the output of the hidden Markov model 412 may indicate the order in which measurements of one GNSS satellite are to be used relative to another GNSS satellite(s) in the signal corrector 504. For example, if the hidden Markov model 412 indicates a high probability of LOS for a particular satellite signal, the measurements corresponding to that GNSS satellite may be given a higher priority (e.g., with respect to the signal corrector 504) over the measurements of satellite signal(s) with lower probabilities.
[0061] In one or more implementations, the output from the hidden Markov model 412 can indicate whether a flag should be set for a particular GNSS satellite(s) (e.g., to reject a list). In such cases, the signal corrector 504 can be configured to ignore measurements (e.g., location estimates) from those GNSS satellite(s). For example, if measurements corresponding to a particular GNSS satellite are regularly determined to have a low probability of LOS signal at a particular location, the particular GNSS satellite can be flagged for that particular location.
[0062] The location estimator 500 may receive as input the input data 502 (e.g., collected by the positioning circuit 308) and / or the output from the signal corrector 504 (e.g., weighted satellite signals), and may provide as output the estimated device location 506. The input data 502 can include data similar to that described above with respect to the training / test data 408. For example, the input data 502 can be used to estimate the position of the electronic device 102 relative to a GNSS satellite associated with the input data 502 (e.g., one of satellites 104a - 104d). The input data 502 can include, but is not limited to, a location derived from a non-satellite signal, a satellite signal strength, a pseudorange of the satellite corresponding to the satellite signal, and / or a multipath indicator. In one or more implementations, the satellite signal strength and / or the multipath indicator can be received in and / or derived from the satellite signal.
[0063] In one or more implementations, the location estimator 500 may be configured to combine wireless navigation signals (e.g., input data 502) with additional sensor data (e.g., detected by motion sensors on the electronic device 102). For example, the sensor data may include accelerometer measurements corresponding to the acceleration of the electronic device 102 and / or gyroscope measurements corresponding to the rotational speed of the electronic device 102. The sensor data may be used to improve the position solution by subtracting the antenna motion (e.g., GNSS antenna) between epochs of sampled wireless navigation measurements (e.g., GNSS measurements), effectively enabling multiple epochs of the measurements to be statistically combined to reduce errors. These techniques may be performed by the location estimator 500 and / or by an INS communicatively coupled to the location estimator 500.
[0064] Further, the signal corrector 504 may correspond to an algorithm that uses a series of measurements / signals observed over time (which may include noise and other inaccuracies) to generate an estimate of an unknown variable (e.g., device and / or user state) that tends to be more accurate than one based on only a single measurement (e.g., a single GNSS measurement). Thus, measurements of the GNSS receiver signal (e.g., input data 502) may be used in the signal corrector 504 along with numerical integration of sensor measurements (such as may be performed by the INS) to subtract unwanted antenna motion between epochs.
[0065] In one or more implementations, one or more of the location estimator 500, the signal corrector 504, and the hidden Markov model 412 are executed via software instructions stored in the memory 304 that, when executed by the host processor 302, cause the host processor 302 to perform certain functions (s).
[0066] In one or more implementations, one or more of the location estimator 500, the signal corrector 504, and the hidden Markov model 412 may be implemented in software (e.g., subroutines and code), hardware (e.g., ASIC, FPGA, programmable logic device (PLD), controller, state machine, gate logic, discrete hardware components, or any other suitable device), and / or a combination of both. In one or more implementations, some or all of the illustrated components may share hardware and / or circuitry, and / or one or more of the illustrated components may utilize dedicated hardware and / or circuitry. In the present disclosure, further features and functions of these modules according to various aspects of the technology of the present application will be further described.
[0067] FIG. 6 shows a flowchart of an exemplary process 600 for estimating the location of an electronic device according to one or more implementations. For purposes of explanation, process 600 will be described herein primarily with reference to FIG. 1. However, process 600 is not limited to the electronic device 204, and one or more blocks (or operations) of process 600 may be performed by one or more other components of the server 204 and / or other suitable devices. Further, for purposes of explanation, the blocks of process 600 are described herein as occurring sequentially or linearly. However, multiple blocks of process 600 may occur in parallel. Additionally, the blocks of process 600 need not be performed in the order shown, and / or one or more blocks of process 600 may not be performed, and / or may be replaced by other operations.
[0068] In block 602, a first satellite signal and a second satellite signal are received by an electronic device such as electronic device 102. Although the description of process 700 relates to two satellite signals, it should be understood that electronic device 102 may receive more than three satellite signals. For example, electronic device 102 can receive signals from satellites 104a - 104d, and any two or more of them may be referred to as the first satellite signal and the second satellite signal.
[0069] From the first satellite signal (e.g., satellite signals 105a - 105d from satellites 104a - 104d) and / or the second satellite signal, electronic device 102 may receive and / or derive a set of parameters for estimating the position of electronic device 102. The parameters may include parameters associated with the position of the receiving device relative to the satellite, such as at least one of azimuth, elevation, pseudorange, uncertainty associated with the pseudorange, range rate, uncertainty associated with the range rate, and / or multipath flag.
[0070] Block 602 can be executed at any time when electronic device 102 is determining its location, but process 600 can be activated particularly based on the probability of an increase in NLOS and / or multipath satellite signals. For example, process 600 can be triggered when electronic device 102 is within a threshold distance of a dense area (e.g., a metropolitan area). For example, this triggering of a particular scenario and / or geographic area in which process 600 should be utilized can reduce the probability of increasing processing time, battery usage, etc. in an environment where the number of LOS satellite signals is likely to be sufficient. Thus, process 600 can be deactivated based on the probability of an increase in LOS satellite signals. For example, process 600 can be deactivated when the electronic device is beyond a threshold distance from a dense area (e.g., a forest).
[0071] In block 604, it is determined (e.g., by electronic device 102) whether the first satellite signal is LOS. In one or more implementations, a hidden Markov model is used to make the determination. For example, the hidden Markov model can be configured according to the process described above with respect to FIG. 4 and can be configured for a particular satellite (e.g., the first satellite). In one or more implementations, the hidden Markov model receives as input at least the signal strength of the first satellite signal (e.g., received at block 602).
[0072] Non-satellite signals can include, for example, wireless access point signals, cellular phone signals, Bluetooth signals, and / or any other non-GNSS signals. Non-satellite signals can be used to provide and / or derive an initial estimated location. The initial estimated location can be based on the location corresponding to the transmitter of the non-satellite signal and the signal strength of the non-satellite signal. For example, a wireless access point can have a known location, and the signal strength from the wireless access point can indicate the distance from the wireless access point. The initial estimated location can also be based on the speed, direction of travel, orientation, and / or time of electronic device 102. For example, the route by which electronic device 102 has moved from the location of a wireless access point can be used to determine an initial estimated location via dead reckoning. The initial estimated location can further be based on the geographic data and / or vertical positioning data of electronic device 102 for three-dimensional positioning. For example, electronic device 102 can access its vertical positioning data tracked by its INS, barometer, etc.
[0073] The signal strength input to the hidden Markov model can be the signal strength of the corresponding satellite signal. The signal strength can be represented in any form such as carrier-to-noise density, signal-to-noise ratio, etc. For example, electronic device 102 can receive a satellite signal, preprocess the satellite signal (e.g., signal smoothing via a hatch filter), and determine the signal-to-noise ratio (e.g., for use with a hidden Markov model corresponding to the satellite).
[0074] In one or more implementations, the hidden Markov model may also receive, as input, a multipath indicator. The multipath indicator may be determined by a GNSS receiver (e.g., positioning circuit 308) of the electronic device 102 based at least on satellite signals, and may be an indicator indicating that the satellite signals are likely to be multipath signals. The multipath indicator may have a present, absent, or unknown value regarding whether the signal has a multipath attribute (e.g., is likely to be multipath).
[0075] Statistical and / or machine learning models, such as hidden Markov models, can receive one or more observation variables to determine a sequence or set of hidden states, where the observation variables are state-dependent. In the context of the present disclosure, the hidden state can be LOS or NLOS, and the observation variables can include a location derived from a non-satellite signal (which can be used to derive the difference between the measured and predicted pseudoranges to a satellite derived independently of GNSS), the signal strength of a satellite signal, the pseudorange of the satellite corresponding to the satellite signal, and / or a multipath indicator. Thus, a hidden Markov model can be used to determine the probability that a corresponding satellite signal is LOS based on the received input. That is, in one or more implementations, a hidden Markov model can be used to determine the most likely state of a given satellite signal given a particular set of observed variables. In one or more implementations, the output of the hidden Markov model can be the probability that a first satellite signal is a LOS signal or the probability that the first satellite signal is a NLOS signal. In one or more implementations, the electronic device 102 can have a probability threshold at which a satellite signal (e.g., the first satellite signal) can be classified as being LOS or NLOS. For example, if a first hidden Markov model estimates that the probability that a first satellite signal is LOS is 80% and the electronic device 102 has a LOS threshold of 75%, the electronic device 102 can treat the first satellite signal as a LOS signal. It should be understood that implementations of the subject technology are not limited to the use of hidden Markov models and can further or alternatively utilize other models such as probabilistic models, probability models, statistical models, machine learning models, finite state machines, heuristic processes, etc. It should also be understood that when a satellite broadcasts multiple signals (e.g., L1 and L5), observed variables from one or more of the signals can be used to update the model corresponding to the satellite.
[0076] In block 606, it is determined (e.g., by electronic device 102) whether the second satellite signal is LOS. For example, the LOS probability can be determined by a second hidden Markov model corresponding to the satellite (e.g., the second satellite) from which the second satellite signal arrived. The second hidden Markov model can be configured (e.g., trained) according to the process described with respect to FIG. 4 above. The second hidden Markov model can receive, as input, at least the signal strength of the second satellite signal. The input to the second hidden Markov model may be the same as the input to the first hidden Markov model in block 604, and thus those descriptions will not be repeated. However, the non-satellite signal may be the same non-satellite signal used as input to the first hidden Markov model. Similar to the first hidden Markov model, the second hidden Markov model can determine the most likely state of the satellite signal given a particular set of observed variables. In one or more implementations, the output of the second hidden Markov model can be the probability that the second satellite signal is a LOS signal and / or the probability that the second satellite signal is a LOS signal. In one or more implementations, electronic device 102 can have a probability threshold at which a satellite signal (e.g., the second satellite signal) can be classified as being LOS or NLOS. Although two signals are described, it should be understood that any and / or each signal used in determining the location of electronic device 102 can be classified as LOS or NLOS.
[0077] In block 608, the location of the electronic device 102 can be estimated based at least in part on the first satellite signal and the second satellite signal (e.g., by the positioning circuit 308 of the electronic device 102) in response to determining whether the first satellite signal is LOS and whether the second satellite signal is non-LOS. The electronic device 102 can use any available method of estimating the location based on the determination of whether the first satellite signal is LOS and the second satellite signal is non-LOS. In one or more implementations, the satellite signals can be any combination of raw or weighted first and second satellite signals, and the combination is determined based on the determination of whether the first satellite signal is a LOS signal and whether the second satellite signal is a LOS signal. For example, as described below with respect to FIG. 7, the location can be estimated based on the first satellite signal and the second satellite signal, where at least the second satellite signal is weighted based on its NLOS characteristics (e.g., based on the probability that the second satellite signal is a LOS signal). In one or more such implementations, determining that the satellite signals to be used in the estimation of the device location include at least one NLOS signal (e.g., the second satellite signal) can be a trigger for determining the weights to be applied to one or more satellite signals (e.g., NLOS signals and / or LOS signals) to improve the accuracy of the location estimate.
[0078] FIG. 7 shows a flowchart of an exemplary process for estimating the location of an electronic device according to one or more implementations. For purposes of explanation, process 700 will be described primarily with reference to FIG. 1 herein. However, process 700 is not limited to electronic device 102, and one or more blocks (or operations) of process 700 may be performed by one or more components of electronic device 102 and / or other suitable devices. Further, for purposes of explanation, the blocks of process 700 are described herein as occurring sequentially or linearly. However, multiple blocks of process 700 may occur in parallel. Additionally, the blocks of process 700 need not be executed in the order shown, and / or one or more blocks of process 700 may not be executed, and / or may be replaced by other operations.
[0079] In block 702, a first satellite signal and a second satellite signal are received (e.g., as input data 502) by an electronic device such as electronic device 102. It should be understood that the description of process 700 is given herein with respect to two satellite signals, but electronic device 102 may receive more than two satellite signals. For example, electronic device 102 may receive satellite signals 105a - 105d from satellites 104a - 104d, and any two or more of them may be referred to as the first satellite signal and the second satellite signal.
[0080] From the first satellite signal (e.g., a signal from satellite signals 105a - 105d) and / or the second satellite signal, electronic device 102 may receive and / or derive a set of parameters for estimating the position of electronic device 102. The parameters may include parameters associated with the position of the receiving device relative to the satellite, such as at least one of azimuth, elevation, pseudorange, uncertainty associated with the pseudorange, range rate, uncertainty associated with the range rate, and / or multipath flag.
[0081] In block 704, the probability that the first satellite signal is LOS is determined. In one or more implementations, the LOS probability is determined using a hidden Markov model corresponding to the satellite from which the first satellite signal arrived (e.g., hidden Markov model 412). In one or more implementations, the hidden Markov model is configured according to the process described with respect to FIG. 4 above. One or more of the inputs to the hidden Markov model corresponding to the first satellite can be based on, and / or include, for example, a location derived from a non-satellite signal, a signal strength of the satellite signal, a pseudorange of the satellite corresponding to the satellite signal, and / or a multipath indicator.
[0082] Non-satellite signals can include, for example, wireless access point signals, cellular telephone signals, Bluetooth signals, and / or any other non-GNSS signals. Non-satellite signals can provide an initial estimated location. The initial estimated location can be based on the location corresponding to the transmitter of the non-satellite signal and the signal strength of the non-satellite signal. For example, a wireless access point can have a known location, and the signal strength from the wireless access point can indicate the distance from the wireless access point. The initial estimated location can also be based on the speed, direction of travel, orientation, and / or time of the electronic device 102. For example, the route by which the electronic device 102 has moved from the location of the wireless access point can be used to determine the initial estimated location via dead reckoning. The initial estimated location can further be based on the geographic data and / or vertical positioning data of the electronic device 102 for three-dimensional positioning. For example, the electronic device 102 can access its vertical positioning data tracked by its INS.
[0083] The signal strength input to the hidden Markov model may be the signal strength of a satellite signal (e.g., a satellite signal corresponding to the hidden Markov model). The signal strength may be represented in any form such as carrier-to-noise density, signal-to-noise ratio, etc. For example, the electronic device 102 may receive a satellite signal, preprocess the satellite signal (e.g., signal smoothing via a hatch filter), and determine the signal-to-noise ratio (e.g., for use with a hidden Markov model corresponding to a satellite).
[0084] The multipath indicator can be an indicator determined by the GNSS receiver (e.g., the positioning circuit 308) of the electronic device 102 indicating that the signal is likely to be a multipath signal. The multipath indicator can have a value of present, absent, or unknown regarding whether the signal has a multipath attribute (e.g., is likely to be multipath).
[0085] The hidden Markov model can receive one or more observation variables to determine a sequence or set of hidden states, and the observation variables are state-dependent. In one or more implementations of the present disclosure, the hidden state is LOS or NLOS, and the observation variables include non-satellite signals, the signal strength of satellite signals, the pseudorange of the satellite corresponding to the satellite signal, and / or the multipath indicator. Thus, the hidden Markov model can determine the probability that the corresponding satellite signal is LOS based on the received input. In one or more implementations, the hidden Markov model can determine the most likely state of the satellite signal given a particular set of observed variables.
[0086] In block 706, weights are determined and applied to the first satellite signal (e.g., by signal modifier 504) to obtain a weighted first satellite signal. The weights can be determined according to the probability that the signal is LOS. The weights can be such that the effect of possible NLOS signals is reduced in location estimation. For example, in one or more implementations, when a first probability that a first satellite signal is LOS is less than a second probability that a second satellite signal is LOS, the first weight is less than the second weight such that an individual first satellite signal is weighted less than the second satellite signal when determining the estimated location. Reducing the weights of NLOS satellite signals enables reduction of errors that may be introduced into location estimation by NLOS satellite signals, while still allowing use of NLOS satellite signals in areas where the number of available LOS satellite signals is low or insufficient. Additionally or alternatively, likely LOS signals can be weighted such that their effect is increased in location estimation. For example, in one or more implementations, when a first probability that a first satellite signal is LOS is higher than a second probability that a second satellite signal is LOS, the first weight is greater than the second weight such that an individual first satellite signal is weighted more than the second satellite signal when determining the estimated location.
[0087] In one or more implementations, when a number of satellite signals are available (e.g., more than four), the first satellite signal may be discarded and another available satellite signal may be used instead. For example, when the first satellite signal is determined to be a NLOS signal and another signal with a relatively high probability of being LOS or LOS is available, the first satellite signal may be discarded. For example, using different NLOS signals with a relatively higher LOS probability may result in less adverse impact on location determination while still enabling location determination in a complex environment with insufficient LOS signals. In one or more implementations, the probability that a signal is a LOS signal may be compared to a threshold for the LOS probability, and when the probability is below the threshold, the signal may be discarded. The threshold may be based on the number of available LOS signals. For example, when fewer LOS signals are available, the threshold may be reduced so that the system has a higher tolerance for signals that are less likely to be LOS. In one or more implementations, signals may be weighted such that they are effectively discarded when determining the location of the electronic device 102.
[0088] In one or more implementations, the probability and weight may be updated periodically. The probability and weight can be updated by periodically updating the input to the hidden Markov model. For example, as the electronic device moves, the location derived from non-satellite signals may change (e.g., via dead reckoning), which can change the probability that a signal is LOS in the hidden Markov model, which can then affect the weight assigned to the satellite signal. Similarly, the weight may be gradually reduced as the probability that a satellite signal is LOS increases to prevent sudden changes in the estimated location of the electronic device 102, and vice versa.
[0089] In block 708, the probability that the second satellite signal is LOS is determined. In one or more implementations, the LOS probability is determined by a second hidden Markov model corresponding to the satellite from which the second satellite signal arrived (e.g., hidden Markov model 412). In one or more implementations, the second hidden Markov model is configured according to the process described with respect to FIG. 4 above. The input to the second hidden Markov model corresponding to the second satellite can be based on and / or include a location derived from a non-satellite signal, the signal strength of the second satellite signal, the pseudorange of the second satellite, and / or a multipath indicator of the second satellite signal. The input to the second hidden Markov model may be the same as the input to the first hidden Markov model in block 704, and thus their description will not be repeated. However, the non-satellite signal may be the same non-satellite signal used as input to the first hidden Markov model. Although two signals are described, it should be understood that the probability can be determined for any and / or each satellite signal used in determining the location of the electronic device 102.
[0090] In block 710, a weight is determined and can be applied to the second satellite signal to obtain a weighted second satellite signal. The weight can be determined according to the probability that the second signal is LOS (e.g., by signal modifier 504). The weight can be such that the effect of a possible NLOS signal is reduced in location estimation. Reducing the weight of an NLOS satellite signal reduces the error that can be introduced into location estimation by the NLOS signal while still allowing the use of NLOS satellite signals in areas where the number of available LOS satellite signals is low or insufficient. Additionally or alternatively, likely LOS signals can be weighted such that their effect is increased in location estimation. Although two signals are described, it should be understood that a weight can be determined for any signal and / or each signal used in determining the location of the electronic device 102.
[0091] In block 712, the location of the electronic device 102 can be estimated based on the weighted first satellite signal and the weighted second satellite signal. A location estimator (e.g., location estimator 500) can receive as inputs the satellite signals (e.g., input data 502) and the weighted satellite signals from block 710. The location estimator can utilize the satellite signals and / or the weighted satellite signals to provide as output an estimated device location (e.g., estimated device location 506).
[0092] As described above, one aspect of the present technology is to collect and use data available from various sources. The present disclosure contemplates that in some cases, this collected data may include personal information data that uniquely identifies a particular person, or personal information data that can be used to contact a particular person or determine their whereabouts. Such personal information data can include demographic data, location-based data, phone numbers, email addresses, Twitter IDs, home addresses, data or records related to a user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other identifying or personal information.
[0093] The present disclosure recognizes that the use of such personal information data in the present technology can be a use that benefits the user. Additionally, other uses of personal information data that benefit the user are also contemplated by the present disclosure. For example, health data and fitness data can be used to provide insights into a user's overall wellness, or can be used as positive feedback to individuals who are using technologies to pursue wellness goals.
[0094] The present disclosure contemplates that entities involved in the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will comply with robust privacy policies and / or privacy practices. Specifically, such entities should implement and consistently use privacy policies and practices that meet or exceed industry or government requirements for securely maintaining personal information data as confidential. Such policies should be readily accessible to users and updated as data collection and / or use changes. Personal information from users should be collected for the legitimate and proper use of the entity and should not be shared or sold except for those legitimate uses. Further, such collection / sharing should be carried out after informing the user and obtaining consent. Moreover, such entities should consider taking all necessary measures to protect and secure access to such personal information data and ensure that others with access rights to personal information data faithfully comply with their privacy policies and procedures. Additionally, such entities should be able to undergo third-party evaluations to demonstrate their compliance with widely accepted privacy policies and practices. Further, the policies and practices should be tailored to the specific types of personal information data collected and / or accessed and should comply with applicable laws and regulations, including jurisdiction-specific considerations. For example, in the United States, the collection or access to certain health data may be subject to federal and / or state laws such as the Health Insurance Portability and Accountability Act (HIPAA). On the other hand, health data in other countries may be subject to different regulations and policies and should be addressed accordingly. Therefore, different privacy practices should be maintained for different types of personal data in each country.
[0095] Notwithstanding the foregoing, the present disclosure also contemplates embodiments that selectively prevent a user from using or accessing personal information data. That is, the present disclosure is intended that hardware elements and / or software elements may be provided to prevent or block access to such personal information data. For example, the technology can be configured to allow a user to select an “opt-in” or “opt-out” of participation in the collection of personal information data either during registration for the service or at any time thereafter. In addition to providing “opt-in” and “opt-out” options, the present disclosure is intended to provide notice regarding access to or use of personal information. For example, the user may be notified when downloading an application that will access the user's personal information data, and may be reminded again immediately before the personal information data is accessed by the application.
[0096] Furthermore, it is an aspect of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. The risk can be minimized by restricting the collection of data and deleting it when it is no longer needed. Additionally, anonymization of data can be used to protect a user's privacy, where applicable, including for certain health-related applications. Anonymization can be facilitated, as needed, by removing certain identifiers (e.g., date of birth, etc.), controlling the amount or specificity of the data stored (e.g., collecting location data at the city level rather than the address level), controlling how the data is stored (e.g., aggregating data across users), and / or other means.
[0097] Therefore, while the present disclosure encompasses the use of personal information data for implementing one or more various disclosed embodiments, the present disclosure also contemplates that it is possible to implement those various embodiments without the need to access such personal information data. That is, the various embodiments of the present technology are not rendered inoperable by the absence of all or part of such personal information data. For example, content can be selected and delivered to a user by inferring preferences based on non-personal information data or a minimal amount of personal information, such as content requested by a device associated with the user, other non-personal information, or publicly available information.
[0098] FIG. 8 shows an exemplary electronic system 800 in which aspects of the subject technology according to one or more implementations can be realized. The electronic system 800 can be, and / or can be a part of, any electronic device for generating the features and processes described with reference to FIGS. 1-3, including, but not limited to, a laptop computer, a tablet computer, a smartphone, and wearable devices (e.g., smartwatches, fitness bands). The electronic system 800 may include various types of machine-readable media and interfaces for various other types of machine-readable media. The electronic system 800 includes one or more processing units (s) 814, a persistent storage device 802, a system memory 804 (and / or buffer), an input device interface 806, an output device interface 808, a bus 810, a ROM 812, one or more processing units (s) 814, one or more network interface (s) 816, a positioning circuit 818, sensor (s) 820, and / or subsets and variations thereof.
[0099] Bus 810 collectively represents all of the systems, peripherals, and chipset buses that communicatively couple a number of internal devices of the electronic system 800. In one or more implementations, bus 810 communicatively couples one or more processing units(s) 814 to ROM 812, system memory 804, and persistent storage device 802. From these various memory units, one or more processing units(s) 814 retrieve the instructions to execute and the data to process in order to execute the processes of the subject disclosure. The one or more processing units(s) 814 can be a single processor or a multi-core processor in different implementations.
[0100] ROM 812 stores static data and instructions that are required by one or more processing units(s) 814 and other modules of the electronic system 800. On the other hand, persistent storage device 802 may be a read and write memory device. Persistent storage device 802 may be a non-volatile memory unit that stores instructions and data even when the electronic system 800 is off. In one or more implementations, a mass storage device (such as a magnetic disk or optical disk, and corresponding disk drive thereof) may be used as persistent storage device 802.
[0101] In one or more implementations, as the persistent memory device 802, a removable memory device (such as a floppy disk, flash drive, and corresponding disk drive) may be used. Similar to the persistent memory device 802, the system memory 804 may be a read and write memory device. However, unlike the persistent memory device 802, the system memory 804 may be a volatile read and write memory such as RAM. The system memory 804 can store either instructions and data that one or more processing units (singular or plural) 814 may require during execution. In one or more implementations, the process of the disclosure of the subject matter is stored in the system memory 804, the persistent memory device 802, and / or the ROM 812. From these various memory units, one or more processing units (singular or plural) 814 retrieve the instructions to be executed and the data to be processed in order to execute the process of one or more implementations.
[0102] The bus 810 is also connected to an input device interface 806 and an output device interface 808. Through the input device interface 806, a user can convey information to and select commands for the electronic system 800. Input devices that may be used with the input device interface 806 can include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). Through the output device interface 808, for example, it may be possible to display an image generated by the electronic system 800. Output devices that may be used with the output device interface 808 can include printer and display devices such as, for example, a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid state display, a projector, or any other device for outputting information.
[0103] One or more implementations can include a device that functions as both an input and output device, such as a touch screen. In these implementations, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and the input from the user can be received in any form, including acoustic input, voice input, or tactile input.
[0104] Bus 810 is also connected to a positioning circuit 818 and sensors 820. The positioning circuit 818 can be used to determine the device location based on positioning techniques. For example, the positioning circuit 818 can provide one or more of GNSS positioning, wireless access point positioning, cellular phone signal positioning, Bluetooth signal positioning, image recognition positioning, and / or INS (e.g., via motion sensors such as accelerometers and / or gyroscopes).
[0105] In one or more implementations, sensors 820 can be utilized to detect the movement, motion, and orientation of the electronic system 800. For example, the sensors can include accelerometers, rate gyroscopes, and / or other motion-based sensors. Alternatively or additionally, sensors 820 can include one or more voice sensors and / or image-based sensors for determining the device position. In another example, sensors 820 can include a barometer that can be utilized to detect atmospheric pressure (e.g., corresponding to the device altitude).
[0106] Finally, as shown in FIG. 8, bus 810 also couples electronic system 800 to one or more networks and / or one or more network nodes via one or more network interfaces 816. In this way, electronic system 800 can be part of a computer network (such as a local area network (LAN), a wide area network ("WAN"), etc.). Any or all of the components of electronic system 800 can be used in conjunction with the subject disclosure.
[0107] Implementations within the scope of the present disclosure can be realized, in part or in whole, using one or more tangible machine-readable storage media (or one or more types of multiple tangible machine-readable storage media) that encode one or more instructions, such as persistent storage device 802 and / or system memory 804. The tangible machine-readable storage media may also be substantially non-transitory.
[0108] The machine-readable storage media can be any storage media that can be read, written to, or otherwise accessed by a general-purpose or special-purpose computing device, including any processing electronic device and / or processing circuitry capable of executing instructions. For example, without limitation, the machine-readable media can include any volatile semiconductor memory such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. The machine-readable media can also include any non-volatile semiconductor memory such as ROM, PROM, EPROM, EEPROM, NVRAM, flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and millipede memory.
[0109] Furthermore, the machine-readable storage medium can include any non-semiconductor memory, such as an optical disk storage device, a magnetic disk storage device, magnetic tape, other magnetic storage device devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible machine-readable storage medium can be directly coupled to the computing device, and in other implementations, the tangible machine-readable storage medium can be indirectly coupled to the computing device via, for example, one or more wired connections, one or more wireless connections, or any combination thereof.
[0110] The instructions can be made directly executable or can be used to expand executable instructions. For example, the instructions can be realized as executable or non-executable machine code, or as instructions in a high-level language that can be compiled to generate executable or non-executable machine code. Furthermore, the instructions can also be realized as data or can include data. The computer-executable instructions can also be structured in any format including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As will be recognized by those skilled in the art, details including, but not limited to, the number, structure, order, and structure of the instructions can be varied significantly without changing the basic logic, functionality, processing, and output.
[0111] The above discussion has primarily referred to a microprocessor or multi-core processor that executes software, but one or more implementations are executed by one or more integrated circuits, such as an ASIC or FPGA(s). In one or more implementations, such an integrated circuit executes instructions stored within the circuit itself.
[0112] One skilled in the art would understand that the various exemplary blocks, modules, elements, components, methods, and algorithms described herein can be implemented as electronic hardware, computer software, or a combination of both. In the above, to show this interchangeability between hardware and software, the various exemplary blocks, modules, elements, components, methods, and algorithms have been generally described in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the design constraints imposed on the overall system and the individual application. One skilled in the art would be able to execute the described functionality in various ways for each individual application. The various components and blocks may be arranged differently (e.g., arranged in a different order or divided in a different way) without departing from the scope of the technology of the present application at all.
[0113] It should be understood that any particular order or hierarchy of blocks in the disclosed process is an example of an exemplary approach. Based on design preferences, it is understood that the particular order or hierarchy of blocks in a process may be rearranged, or that all of the illustrated blocks may be executed. Any of the blocks may be executed simultaneously. In one or more implementations, multitasking and parallel processing may be advantageous. Further, the separation of the various system components in the above-described implementations should not be understood to be required in all implementations. It should be understood that the described program components and systems may be integrated into a single software product or packaged into multiple software products.
[0114] As used in the specification and claims of this application, the terms "base station", "receiver", "computer", "server", "processor", and "memory" all refer to electronic or other technical devices. These terms exclude humans or groups of humans. For the purposes of this specification, the term "display" or "displaying" means displaying on an electronic device.
[0115] As used herein, the phrase "at least one" preceding a series of items modifies the list as a whole, rather than each element (i.e., each item) of the list, together with the term "and" or "or" separating any of the items. The phrase "at least one" does not require at least one selection of each of the listed items; rather, the phrase enables the meaning of including at least one of any one of the items, and / or at least one of any combination of the items, and / or at least one of each of the items. By way of example, the phrases "at least one of A, B, and C" or "at least one of A, B, or C" each refer to only A, only B, or only C, any combination of A, B, and C, and / or at least one of each of A, B, and C.
[0116] The predicates "configured to", "operable to", and "programmed to" do not mean a particular tangible or intangible modification of an object, but rather are intended to be used interchangeably. In one or more implementations, a processor configured to monitor and control an operation or component may mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Similarly, a processor configured to execute code can be interpreted as a processor programmed to execute the code or operable to execute the code.
[0117] One aspect, that aspect, another aspect, some aspects, one or more aspects, one implementation, that implementation, another implementation, some implementations, one or more implementations, one embodiment, that embodiment, another embodiment, some embodiments, one or more embodiments, one configuration, that configuration, another configuration, some configurations, one or more configurations, the technology of the present application, the disclosure, this disclosure, other variations thereof, and similar phrases are for convenience, and the disclosure regarding such phrases (singular or plural) is not meant to imply that the disclosure of such phrases is essential to the technology of the present application or that such disclosure applies to all configurations of the technology of the present application. The disclosure regarding such phrases (singular or plural) can apply to all configurations or one or more configurations. The disclosure regarding such phrases (singular or plural) can provide one or more examples. Phrases such as an aspect or some aspects can refer to one or more aspects, and vice versa, which applies similarly to the other aforementioned phrases.
[0118] The word "exemplary" is used in this specification to mean "serving as an example, instance, or illustration". Any implementation described herein as "exemplary" or "an example" should not necessarily be construed as being preferred or advantageous over other implementations. Further, to the extent that the terms "include", "have", or the like are used in the specification or claims, such terms are intended to be inclusive in the same manner as the term "comprise" is construed when "comprise" is used as a transitional term in the claims.
[0119] All structural and functional equivalents to the elements of the various aspects described through this disclosure, whether known now or later to become known to those skilled in the art, are hereby expressly incorporated by reference into this specification and are intended to be encompassed by the claims. Further, nothing disclosed herein is dedicated to the public, whether or not such disclosure is expressly recited in the claims. No element of any of the claims is to be construed under the provisions of 35 U.S.C. § 112, paragraph 6, unless the element is expressly recited using the phrase "means for" or, in the case of a method claim, the element is not recited using the phrase "step for".
[0120] The foregoing description is provided to enable a person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but rather should be accorded the full scope consistent with the language of the claims, and references to singular elements are not intended to mean "one and only one" unless specifically stated otherwise, but rather "one or more". Unless otherwise noted, the term "some" refers to one or more. Pronouns in the masculine form (e.g., he) include the feminine and neuter genders (e.g., she and it), and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the disclosure of the present application.
Claims
1. A method comprising: receiving, using an electronic device, a first satellite signal and a second satellite signal; determining, using the electronic device, a first probability that the first satellite signal is a first line-of-sight satellite signal; determining, using the electronic device, a second probability that the second satellite signal is a second line-of-sight satellite signal; estimating, using the electronic device, a location of the electronic device based at least in part on the first probability that the first satellite signal is the first line-of-sight satellite signal and the second probability that the second satellite signal is the second line-of-sight satellite signal.
2. Determining the first probability is at least partially based on a first signal strength of the first satellite signal, Determining the second probability is at least partially based on a second signal strength of the second satellite signal, the method according to claim 1.
3. Determining the first probability and the second probability are each based on a first hidden Markov model and a second hidden Markov model, respectively, the method according to claim 1.
4. Inputs to the first and second hidden Markov models include at least one of a location of the electronic device derived from non-satellite signals, a signal strength of a satellite signal corresponding to the hidden Markov model, a pseudo-range of a satellite corresponding to the satellite signal, and a multipath indicator set based on a pre-processed received signal, the method according to claim 3.
5. The estimated location of the electronic device is based on a location corresponding to a transmitter of the non-satellite signal and a signal strength of the non-satellite signal, the method according to claim 4.
6. The estimated location is further based on at least one of a speed, a direction of travel, a direction, and a time of the electronic device, the method according to claim 4.
7. The estimated location is a three-dimensional position further based on at least one of geographic data and vertical positioning data of the electronic device, the method according to claim 4.
8. The method according to claim 1, further comprising discarding the second satellite signal in response to the second probability being less than a threshold before estimating the location of the electronic device.
9. The threshold is based on a number of available line-of-sight satellite signals, the method according to claim 8.
10. Estimating the location of the electronic device includes: Determining a first weight based on the first probability; Applying the first weight to the first satellite signal to generate a weighted first satellite signal; Determining a second weight based on the second probability; Applying the second weight to the second satellite signal to generate a weighted second satellite signal, the method according to claim 1.
11. The method according to claim 10, wherein estimating the location of the electronic device further includes estimating the location based on the weighted first satellite signal and the weighted second satellite signal.
12. The method according to claim 11, wherein the first weight is less than the second weight such that the first satellite signal is weighted less than the second satellite signal at the estimated location in response to the first probability being less than the second probability.
13. An electronic device, comprising: A memory; One or more processors configured to: Receive a first satellite signal and a second satellite signal; Determine a first probability that the first satellite signal is a first line-of-sight satellite signal based at least in part on a first satellite signal strength of the first satellite signal; Determine a second probability that the second satellite signal is a second line-of-sight satellite signal based at least in part on a second signal strength of the second satellite signal; Estimate a location of the electronic device based at least in part on the first probability that the first satellite signal is the first line-of-sight satellite signal and the second probability that the second satellite signal is the second line-of-sight satellite signal, the one or more processors configured to perform operations.
14. The electronic device according to claim 13, wherein determining the first probability and the second probability are respectively based on a first hidden Markov model and a second hidden Markov model.
15. The input to the first and second hidden Markov models includes at least one of the location of the electronic device derived from a non-satellite signal, the signal strength of a satellite signal corresponding to the hidden Markov model, the pseudorange of the satellite corresponding to the satellite signal, and a multipath indicator set based on a preprocessed received signal. The electronic device according to claim 14.
16. The estimated location of the electronic device is based on the location corresponding to the transmitter of the non-satellite signal and the signal strength of the non-satellite signal. The electronic device according to claim 15.
17. The estimated location is further based on at least one of the speed, heading, direction, and time of the electronic device. The electronic device according to claim 15.
18. Estimating the location of the electronic device includes determining a first weight based on the first probability; applying the first weight to the first satellite signal to generate a weighted first satellite signal; determining a second weight based on the second probability; applying the second weight to the second satellite signal to generate a weighted second satellite signal; estimating the location based on the weighted first satellite signal and the weighted second satellite signal. The electronic device according to claim 13.
19. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to receive, using an electronic device, a first satellite signal and a second satellite signal; determine, using the electronic device, a first probability that the first satellite signal is a first line-of-sight satellite signal and a second probability that the second satellite signal is a second line-of-sight satellite signal; estimate, using the electronic device, the location of the electronic device based at least in part on the first probability that the first satellite signal is the first line-of-sight satellite signal and the second probability that the second satellite signal is the second line-of-sight satellite signal. A non-transitory machine-readable medium that causes an operation to be performed.
20. Determining the first probability and the second probability is respectively based on a first hidden Markov model and a second hidden Markov model, the non-transitory machine-readable medium according to claim 19.
21. Estimating the location of the electronic device is Determining a first weight based on the first probability; Applying the first weight to the first satellite signal to generate a weighted first satellite signal; Determining a second weight based on the second probability; Applying the second weight to the second satellite signal to generate a weighted second satellite signal; Estimating the location based on the weighted first satellite signal and the weighted second satellite signal, the non-transitory machine-readable medium according to claim 19.
Citation Information
Patent Citations
Positioning device and positioning method
JP2007248109A
Method for distinguishing between line-of-sight (los) and non-los (nlos) using multipath channel statistics
JP2009545934A
Positioning method and positioning device using positioning data from satellite
JP2011013132A
Extended database information for urban navigation
JP2012503775A
Position calculation method and position calculation device
JP2013068451A