RF-assisted polynomial heading drift correction for IMU sensor
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2026-01-26
- Publication Date
- 2026-08-13
Smart Images

Figure US2026012575_13082026_PF_FP_ABST
Abstract
Description
Qualcomm Ref. No. 2407500WO1RF-ASSISTED POLYNOMIAL HEADING DRIFT CORRECTION FOR IMU SENSORCROSS REFERENCE
[0001] The present Application for Patent claims priority to Greece Patent Application No. 20250100106 by ANGJELICHINOSKI et al., entitled “ RF-ASSISTED POLYNOMIAL HEADING DRIFT CORRECTION FOR IMU SENSOR,” filed February 7, 2025, which is assigned to the assignee hereof, and expressly incorporated by reference in its entirety herein.BACKGROUND
[0002] Positions of devices, such as mobile devices, may be determined using terrestrial-based positioning signals, such as one or more radio frequency (RF) modalities (e.g., WiFi®- Received Signal Strength Indication (RSSI) Round Trip Time (RTT), and Bluetooth®-low energy (BLE)). The mobile device may be equipped with sensors, such as an inertial measurement unit (IMU), which provide measurement (e.g., relative turn angle (RTA), heading, step count, etc.), from which movements of the mobile device may be tracked. Cumulative drift over time of the IMU measurements may occur, which may impact the performance of the tracking of the mobile device.SUMMARY
[0003] An example method for correcting drift in sensor measurements, includes: receiving one or more measurement reports for a current time, including one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of a user equipment (UE); determining one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; determining one or more corrected heading measurements for the current time based on the one or more drift parameter values; and determining an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
[0004] An example UE for correcting drift in sensor measurements, includes: one or more memories; and one or more processors communicatively coupled to the one orAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO2more memories, the one or more processors being configured to: receive one or more measurement reports for a current time, including one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of the UE; determine one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; determine a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; determine one or more corrected heading measurements for the current time based on the one or more drift parameter values; and determine an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
[0005] An example UE for correcting drift in sensor measurements, includes: means for receiving one or more measurement reports for a current time, including one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of the UE; means for determining one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; means for determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; means for determining one or more corrected heading measurements for the current time based on the one or more drift parameter values; and means for determining an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
[0006] An example non-transitory, processor-readable storage medium includes processor-readable instructions for correcting drift in sensor measurements, the processor-readable instructions to cause one or more processors to: receive one or more measurement reports for a current time, including one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of a UE; determine one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; determine a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; determine one or more corrected heading measurements for the current time based on the one or more drift parameter values; and determine an estimated state of the UE forAttorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO3the current time based on the predicted state and the one or more corrected heading measurements.BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. l is a block diagram of an example user equipment (UE).
[0008] FIG. 2 is a diagram showing an example of the tracking of a trajectory of UE movements.
[0009] FIG. 3 is a diagram showing the heading measurement correction by a tracking filter.
[0010] FIG. 4 is a block diagram of an example server.
[0011] FIG. 5 illustrates a signal and processing flow for initializing a configuration of a drift parameter search space.
[0012] FIG. 6 is a flowchart showing a method for correction of drift in sensor measurements.
[0013] FIG. 7 is a flowchart showing a method for drift parameter search space adjustment.DETAILED DESCRIPTION
[0014] Techniques are discussed herein for correcting for cumulative drift that may occur over time in the measurements by one or more sensors, such as inertial measurement units (IMU), in mobile devices. The drift may impact the performance of the tracking of mobile device movements. According to various embodiments, radio frequency (RF) information may be leveraged to account for and correct the cumulative drift based on a model of the heading drift as a polynomial function of time. A polynomial drift model may include drift parameters that capture how much the IMU measurements drift over time. The drift parameters may be used to correct the heading measurements provided in one or more measurement reports from the sensors, and the corrected heading measurements may be used in estimating a state of the UE for a current time. By correcting the heading measurements and using the corrected heading measurements in estimating the state of the UE, position estimate performance may be improved. These are examples, and other examples may be implemented.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO4
[0015] Items and / or techniques described herein may provide one or more of the following capabilities, and possibly one or more other capabilities not mentioned. Other capabilities may be provided and not every implementation according to the disclosure must provide any, let alone all, of the capabilities discussed.
[0016] The description herein may refer to sequences of actions to be performed, for example, by elements of a computing device. Various actions described herein can be performed by specific circuits (e.g., an application specific integrated circuit (ASIC)), by program instructions being executed by one or more processors, or by a combination of both. Sequences of actions described herein may be embodied within a non-transitory computer-readable medium having stored thereon a corresponding set of computer instructions that upon execution would cause an associated processor to perform the functionality described herein. Thus, the various examples described herein may be embodied in a number of different forms, all of which are within the scope of the disclosure, including claimed subject matter.
[0017] Referring to FIG. 1, a UE 100 includes a processor 110, a memory 111, sensor(s) 113, and a transceiver 115. Even if referred to in the singular, the processor 110 may include one or more processors, the transceiver 115 may include one or more transceivers (e.g., one or more transmitters and / or one or more receivers), and the memory 111 may include one or more memories. The processor 110, the memory 111, and the transceiver 115 may be communicatively coupled to each other by a bus 120 (which may be configured, e.g., for optical and / or electrical communication). The processor 110 may include one or more hardware devices, e.g., one or more central processing units (CPU), one or more microcontrollers, one or more application specific integrated circuits (ASIC), etc. The memory 111 may be one or more non-transitory storage media that may include random access memory (RAM), flash memory, disc memory, and / or read-only memory (ROM), etc. The memory 111 may include software 112 with processor-readable instructions configured to cause the processor 110 to perform functions. Alternatively, the software 112 may not be directly executable by the processor 110 but may be configured to cause the processor 110, e.g., when compiled and executed, to perform the functions. The description herein may refer to the processor 110 performing a function, but this includes other implementations such as where the processor 110 executes software and / or firmware.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO5
[0018] In general, the user equipment (UE) 100 may be any wireless communication device (e.g., a mobile phone, router, tablet computer, laptop computer, consumer asset tracking device, Internet of Things (loT) device, etc.). A UE 105 may be mobile or may, at certain times, be stationary. As used herein, the term “UE” may be referred to interchangeably as an “access terminal” or “AT,” a “client device,” a “wireless device,” a “subscriber device,” a “subscriber terminal,” a “subscriber station,” a “user terminal” or UT, a “mobile terminal,” a “mobile station,” a “mobile device,” or variations thereof. The UE 100 may be embodied by any of a number of types of devices including but not limited to printed circuit (PC) cards, compact flash devices, external or internal modems, wireless or wireline phones, smartphones, tablets, consumer asset tracking devices, asset tags, and so on. The UE 100 may comprise and / or may be referred to as a device, a mobile device, a wireless device, or by some other name. Moreover, the UE 100 may correspond to a cellphone, smartphone, laptop, tablet, PDA, consumer asset tracking device, navigation device, Internet of Things (loT) device, health monitors, security systems, smart city sensors, smart meters, wearable trackers, virtual reality headsets, augmented reality glasses, or some other portable or moveable device. The UE 100 supports wireless communication using one or more Radio Access Technologies (RATs) such as IEEE 802.11 WiFi® (also referred to as Wi-Fi®), Bluetooth® (BT), Ultra-wideband (UWB), etc., that may be used by wireless ranging techniques.
[0019] The UE 100 may include one or more sensors 113 that may include, for example, an Inertial Measurement Unit (IMU) 170, one or more magnetometers 171, and / or one or more environment sensors 172. The IMU 170 may comprise, for example, one or more accelerometers 173 (e.g., collectively responding to acceleration of the UE 100 in three dimensions) and / or one or more gyroscopes 174 (e.g., three-dimensional gyroscope(s)). The sensor(s) 113 may include the one or more magnetometers 171 (e.g., three-dimensional magnetometer(s)) to determine orientation (e.g., relative to magnetic north and / or true north) that may be used for any of a variety of purposes, e.g., to support one or more compass applications. The environment sensor(s) 172 may comprise, for example, one or more temperature sensors, one or more barometric pressure sensors, one or more ambient light sensors, one or more camera imagers, and / or one or more microphones, etc. The sensor(s) 113 may generate analog and / or digital signals indications of which may be stored in the memory 111 andAttorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO6processed by the processor 110 in support of one or more applications such as, for example, applications directed to positioning and / or navigation operations. The sensor(s) 113 may comprise one or more of other various types of sensors such as one or more optical sensors, one or more weight sensors, and / or one or more radio frequency (RF) sensors, etc.
[0020] The sensor(s) 113 may be used in relative location measurements, relative location determination, motion determination, etc. Information detected by the sensor(s) 113 may be used for motion detection, relative displacement, dead reckoning, sensor-based location determination, and / or sensor-assisted location determination. The sensor(s) 113 may be useful to determine whether the UE 100 is fixed (stationary) or mobile and / or whether to report certain useful information regarding the mobility of the UE 100. For example, based on the information obtained / measured by the sensor(s) 113, the UE 100 may notify / report that the UE 100 has detected movements or that the UE 100 has moved, and may report the relative displacement / distance (e.g., via dead reckoning, or sensor-based location determination, or sensor-assisted location determination enabled by the sensor(s) 113). In another example, for relative positioning information, the sensors / IMU may be used to determine the angle and / or orientation of the other device with respect to the UE 100, etc.
[0021] The IMU 170 may be configured to provide measurements in one or more measurement reports about a direction of motion and / or a speed of motion of the UE 100, which may be used in relative location determination. For example, the one or more accelerometers 173 and / or the one or more gyroscopes 174 of the IMU 170 may detect, respectively, a linear acceleration and a speed of rotation of the UE 100. The linear acceleration and speed of rotation measurements of the UE 100 may be integrated over time to determine an instantaneous direction of motion as well as a displacement of the UE 100. The instantaneous direction of motion and the displacement may be integrated to track a location of the UE 100. For example, a reference location of the UE 100 may be determined for a moment in time and measurements from the accelerometer(s) 173 and the gyroscope(s) 174 taken after this moment in time may be used in dead reckoning to determine a present location of the UE 100 based on movement (direction and distance) of the UE 100 relative to the reference location.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO7
[0022] The magnetometer(s) 171 may determine magnetic field strengths in different directions which may be used to determine orientation of the UE 100. For example, the orientation may be used to provide a digital compass for the UE 100. The magnetometer(s) may include a two-dimensional magnetometer configured to detect and provide indications of magnetic field strength in two orthogonal dimensions. The magnetometer(s) 171 may include a three-dimensional magnetometer configured to detect and provide indications of magnetic field strength in three orthogonal dimensions. The magnetometer(s) 271 may provide means for sensing a magnetic field and providing indications of the magnetic field, e.g., to the processor 110.
[0023] The transceiver 115 may include a wireless transceiver 140 configured to communicate with other devices through wireless connections. For example, the wireless transceiver 140 may include a wireless transmitter 142 and a wireless receiver 144 coupled to an antenna 146 for transmitting (e.g., on one or more uplink channels and / or one or more sidelink channels) and / or receiving (e.g., on one or more downlink channels and / or one or more sidelink channels) wireless signals 148 and transducing signals from the wireless signals 148 to wired (e.g., electrical and / or optical) signals and from wired (e.g., electrical and / or optical) signals to the wireless signals 148. The wireless transmitter 142 includes appropriate components (e.g., a power amplifier and a digital-to-analog converter). The wireless receiver 144 includes appropriate components (e.g., one or more amplifiers, one or more frequency filters, and an analog-to-digital converter). The wireless transmitter 142 may include multiple transmitters that may be discrete components or combined / integrated components, and / or the wireless receiver 144 may include multiple receivers that may be discrete components or combined / integrated components. The wireless transceiver 140 may be configured to communicate signals according to a variety of radio access technologies (RATs) such as 5G New Radio (NR), GSM (Global System for Mobiles), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE 802.11 (including IEEE 802.1 Ip), WiFi®, WiFi® Direct (WiFi®-D), Bluetooth®, Zigbee®, etc. New Radio may use mm-wave frequencies and / or sub-6GHz frequencies. The wireless transmitter 142, the wireless receiver 144, and / or the antenna 146 may include multipleAttorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO8transmitters, multiple receivers, and / or multiple antennas, respectively, for sending and / or receiving, respectively, appropriate signals.
[0024] The description herein may refer to the processor 110 performing a function, but this includes other implementations such as where the processor 110 executes software (stored in the memory 111) and / or firmware. The description herein may refer to the UE 100 performing a function as shorthand for one or more appropriate components (e.g., the processor 110 and the memory 111) of the UE 100 performing the function.
[0025] The processor 110 (possibly in conjunction with the memory 111 and, as appropriate, the transceiver 115) may include or implement one or more tracking filters 116 configured with drift correction. Even if referred to in the singular, the tracking filter 116 may include one or more tracking filters. The tracking filter 116 may be configured to estimate a current state of the UE 100 at a current time based at least on a previous state of the UE 100 at a previous time and one or more measurements in one or more measurement reports. A state of the UE 100 refers to a condition or status of the UE 100 at a given time, which may include at least the location coordinates of the UE 100. The state of the UE 100 may include additional state variables, e.g., heading or orientation, speed, status of a battery, network connectivity, application usage, device performance, power management, etc. The tracking filter 116 is discussed further below, and the description may refer to the processor 110 generally, or the UE 100 generally, as performing any of the functions of the tracking filter 116, with the UE 100 being configured to perform the function(s).
[0026] Referring to FIG. 2, an example of the tracking of a trajectory of UE movements are shown. As the UE 100 moves to different locations 201-203 over time, the UE 100 provides one or more measurement reports corresponding to each location 201-2013. For example, at location 203 at time &, the UE 100 may provide measurement report(s) zk corresponding to time tk. Each measurement report may include one or more RF inputs and one or more IMU inputs. The RF inputs may include, for example, one or more RSSI-based target location estimates (e.g., from WiFi-RSSI). The IMU inputs may include, for example, one or more dynamic heading measurements <t>k and step counts between times tk-i and tk. Other inputs may be included in a measurement report depending on the available modality (e.g., camera, WiFi-RTT, BLE, UWB). The tracking filter 116 may determine a state xt of the UE 100, which may be expressed as:Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO9X / : = (xk, yk, (Pk, dk,) (Eq. 1) where (xk, yk) is the target location 203 of the UE 100 at time &,h is the dynamic heading of the UE 100 at time tk with regards to a predefined coordinate system, anddk is the displacement of the UE 100 between times tk-i and tk.Similarly, at a previous time tk-i, the tracking filter 116 may determine the state Xk-i = (xk-i, yk-i, d>k-i, dk-i,). Similarly, at another previous time &-2, the tracking filter 116 may determine the state xk-2 = (xk-2, yk-2, d>k-2, dk-2,).
[0027] The IMU inputs, however, may exhibit cumulative drift over time, which may occur when integrating the output from the IMU 107 to compute a relative turn angle (RTA) or heading. The cumulative drift may negatively impact the performance of the tracking filter 116. According to various embodiments, RF information may be leveraged to account for and correct the cumulative drift based on a model of the heading drift as a polynomial function of time. In correcting the cumulative drift, one or more heading measurements may be modified based on the values of one or more drift parameters. A drift parameter search space may be configured for the drift parameters to ensure stability and convergence of the tracking filter 116.
[0028] Differences between the ground truth or true heading and the measured heading may be observed due to cumulative drift experienced by the one or more sensors 113. The heading measurement error, obtained by subtracting the ground truth heading from the measured heading, may result in drift that appears to vary smoothly and monotonically over time, which may be modeled as a polynomial function of time. The drift model may defined based on the device type and / or the IMU type of the UE 100.
[0029] In one embodiment, the tracking filter 116 may be configured with adaptive RF-assisted IMU drift correction using the drift model. The tracing filter 116 of the UE 100 may be defined by a state xk at time tk, where the state evolves dynamically over time. The measurement report(s) zk at time tk may depend on the current state Xk. A drift model may be expressed as:(Eq 2) wherein P is the order of drift parameters,0(p)is the drift parameter of order p=0, 1, ..., P, andtk is the time with index k.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO10The drift parameters 6(P) capture the polynomial drift as a function of time, i.e., captures how amount the IMU measurements drift over time. The drift parameters 6(P) may be used to correct the drift of the heading measurements away from the actual / ground truth values.
[0030] Referring to FIG. 3, the tracking filter 116 may be configured to perform the state prediction and state update functions with the dynamic heading correction as shown. At block 301, the tracking filter 116 may augment an initial state xo of the UE 100 with one or more drift parameters 6(P) according to a drift model. The drift parameters 6(P) may be defined based on a drift profile associated with the UE 100 or associated with the one or more sensors 113 of the UE 100 (e.g., the IMU 170). For example, different drift profiles may be associated with different device types (model, manufacturer, etc. of the UE 100) and different IMU types. At block 302, the tracking filter 116 may predict the state xk of the UE 100 for a time tk based at least on a previous state xk-of the UE 100 at a previous time tk-i. The tracking filter 116 may further predict the drift parameter values (6k, (P), ... 6k, (i), 6k, (o) for time tk. At block 303, for the time tk, the tracking filter 116 may further receive measurement reports that include heading measurements zk. The tracking filter 116 may perform a dynamic heading correction <Pkto correct the heading measurements z using the predicted drift parameters values (6k, (P), ... 6k, (i), 6k, (o), which may be expressed as:&& & At block 304, the tracking filter 116 may update the state of the UE 100 to determine an estimated state x k, based on the predicted state .wand the corrected heading measurements z which may be expressed as:Xk(xk-i) ~ xk(xk-i, z’k). (Eq. 4) A predicted state refers to the current state of the UE 100, based on previous measurements and a model of the state process. An estimated state refers to the current state of the UE 100 after the receipt and processing of the measurements z’k. The location of the UE 100 at tk may be determined based on the estimated state x ’k. The tracking filter 116 may correct the heading measurements zk based on one or more factors computed using the running estimates of the predicted drift parameter values (6k, (P), ... 6k, (i), 6k, (0)).Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO11
[0031] A drift parameter search space for the drift parameters may be configured. The drift parameter search space refers to the range of values for the drift parameters. In detecting and quantifying the values of the drift parameters, the tracking filter 116 would explore within the ranges in the drift parameter search space. The drift parameter search space may be initialized with a set of ranges for the drift parameter values, and the range of values may be adjusted over time to ensure that the tracking filter 116 is stable and convergences. The stability of the tracking filter 116 refers to the drift parameter values remaining within the defined range of values, and the convergence of the tracking filter 116 refers to the tracking filter’s estimated state approaching a true state of the UE 100 being tracked, i.e., eventually reaching a steady value as more measurements are received. The drift parameter search space may include: an interval of possible values for the coefficients of the polynomial correction model Sp=o 0(p)ffciand the “learning rates” defined as the parameters of the statistical model associated with the polynomial coefficients as part of the state of the tracking filter 116.
[0032] For example, the drift parameter correction model may be a linear function:A search space for the drift parameter 6i may be defined as a range of< The values of the range, [0w,min> 0(i),max], may depend on the anticipated drift, or rate of change of the drift for higher order polynomials, at a given time tk. For example, assume that the difference between a true heading and a measured heading shows a heading drift of approximately 50° - 60°. Thus,0(i),max]=[50°, 60°]. Further, if the polynomial coefficients are modeled as Gaussians, then the variances of the polynomial coefficients may indicate the “learning rates.” The interval for other drift parameters may be defined in a similar manner.
[0033] The drift parameter search space may be configured based on an initial drift (as described above), as well as an accumulated drift by a given time tk or the rate of drift accumulation. The initial drift and / or the accumulated drift may depend upon the type of IMU sensor 170. For example, different types of IMU sensors may have different drift profiles. The initial drift and / or the accumulated drift may also depend upon the ambient environment. For example, the sensor(s) 113 may be operating in an area populated with magnetically active objects, such as electronic equipment, and these sensor(s) 113 may experience more IMU drift over time than sensors in less magnetically activeAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO12environments. The drift parameter search space may be further adjusted to ensure stability and convergence of the tracking filter 116 in real time. For example, if the UE 100 moves to an area which is magnetically active, the drift parameter search space may be increased. For another example, the drift parameter search space may be reduced if the tracking filter 116 is oscillating. For another example, the rate of measurement reports may be increased if the measurements .a are received at a rate where the dimensioning of the drift correction parameters falls below a threshold. Increasing the rate of the measurement reports may allow the tracking filter 116 to search across a larger drift parameter space.
[0034] In one embodiment, one or more servers may determine the drift parameter search space for the UE 100 and provide the drift parameter search space to the tracking filter 116 upon request. The one or more servers may monitor the performance of the tracking filter 116 and adjust the drift parameter search space accordingly. The one or more servers may provide the adjusted drift parameter search space to the tracking filter 116. Alternatively, the drift parameter search space, and its adjustments, may be determined by the UE 100.
[0035] Referring also to FIG. 4, to obtain information to configure the initial drift parameter search space, one or more servers 400, configured to provide a tracking service, may collect device-specific drift information and / or time-stamped heading measurements, where the heading measurements may be obtained through surveying or crowdsourcing. Even if referred to in the singular, the server 400 may include one or more servers. The server 400 may determine a range for each drift parameter and send each range to the tracking filter 116. The server 400 may monitor the performance of the tracking filter 116 and may adjust one or more of the ranges based on the performance of the tracking filter 116 over time.
[0036] The server 400 may comprise a computing platform including a processor 410, a memory 411 including software (SW) 412, and a transceiver 415. Even if referred to in the singular, the processor 410 may include one or more processors, the transceiver 415 may include one or more transceivers (e.g., one or more transmitters and / or one or more receivers), and the memory 411 may include one or more memories. The processor 410, the memory 411, and the transceiver 415 may be communicatively coupled to each other by a bus 420 (which may be configured, e.g., for optical and / or electricalAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO13communication). The processor 410 may include one or more hardware devices, e.g., a central processing unit (CPU), a microcontroller, an application specific integrated circuit (ASIC), etc. The processor 410 may comprise multiple processors (e.g., including a general-purpose / application processor, a DSP, a modem processor, a video processor, and / or a sensor processor). The memory 411 may be a non-transitory storage medium that may include random access memory (RAM)), flash memory, disc memory, and / or read-only memory (ROM), etc. The memory 411 may store the software 412 which may be processor-readable, processor-executable software code containing instructions that are configured to, when executed, cause the processor 410 to perform various functions described herein. Alternatively, the software 412 may not be directly executable by the processor 410 but may be configured to cause the processor 410, e.g., when compiled and executed, to perform the functions.
[0037] The transceiver 415 may include a wireless transceiver 440 configured to communicate with other devices through wireless connections. For example, the wireless transceiver 440 may include a wireless transmitter 442 and a wireless receiver 444 coupled to an antenna 446 for transmitting (e.g., on one or more uplink channels and / or one or more downlink channels) and / or receiving (e.g., on one or more downlink channels and / or one or more uplink channels) wireless signals 448 and transducing signals from the wireless signals 448 to wired (e.g., electrical and / or optical) signals and from wired (e.g., electrical and / or optical) signals to the wireless signals 448. The wireless transmitter 442 includes appropriate components (e.g., a power amplifier and a digital-to-analog converter). The wireless receiver 444 includes appropriate components (e.g., one or more amplifiers, one or more frequency filters, and an analog-to-digital converter). The wireless transmitter 442 may include multiple transmitters that may be discrete components or combined / integrated components, and / or the wireless receiver 444 may include multiple receivers that may be discrete components or combined / integrated components. The wireless transceiver 440 may be configured to communicate signals according to a variety of radio access technologies (RATs) such as 5G New Radio (NR), GSM (Global System for Mobiles), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE 802.11 (including IEEEAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO14802.1 Ip), WiFi®, WiFi® Direct (WiFi®-D), Bluetooth®, Zigbee®, etc. New Radio may use mm-wave frequencies and / or sub-6GHz frequencies. The wireless transmitter 442, the wireless receiver 444, and / or the antenna 446 may include multiple transmitters, multiple receivers, and / or multiple antennas, respectively, for sending and / or receiving, respectively, appropriate signals.
[0038] The description herein may refer to the processor 410 performing a function, but this includes other implementations such as where the processor 410 executes software and / or firmware. The description herein may refer to the processor 410 performing a function as shorthand for one or more of the processors contained in the processor 410 performing the function. The description herein may refer to the server 400 performing a function as shorthand for one or more appropriate components of the server 400 performing the function. The processor 410 may include a memory with stored instructions in addition to and / or instead of the memory 430. Functionality of the processor 410 is discussed more fully below.
[0039] The server 400 (via the processor 110, possibly in conjunction with the memory 111 and, as appropriate, the transceiver 115) may further include one or more drift correction enforcement (DCE) modules 117. Even if referred to in the singular, the DCE module 117 may include one or more DCE modules. The DCE module 117 may be configured to determine preliminary drift parameter ranges for the drift parameters 6(P) and to monitor a behavior of the tracking filter 116 for the stability and convergence of the tracking filter 116. The DCE module 117 is discussed further below, and the description may refer to the processor 110 generally, or the UE 100 generally, as performing any of the functions of the DCE module 117, with the UE 100 being configured to perform the function(s).
[0040] Referring to FIG. 5, a signal and processing flow 500 for initializing the configuration of the drift parameter search space are shown. The flow 500 is an example flow and not limiting. The flow 500 may be altered, e.g., by having one or more messages and / or one or more stages added, removed, rearranged, combined, performed concurrently, and / or having one or more messages and / or one or more stages split into multiple messages and / or stages. At stage 510, the server 400 may receive, from the UE 100, one or more RF location estimates 502. Optionally, the one or more servers 400 may request one or more images 503 from a camera 501 located within an environmentAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO15through which the UE 100 is moving. For example, the camera 501 may be located inside of a retail store, and through image analysis, the one or more servers 400 may determine the locations and configurations of the aisles in the store and determine the potential trajectory of the UE’s movements. The server 400 may determine a movement pattern of the UE 100 based on the RF location estimates 502, possibly in conjunction with the images 504. At stage 520, the one or more servers 400 may attempt to match the movements of the UE 100 to a movement profile. At stage 530, if a matching movement profile is detected, then the server 400 may configure preliminary drift parameter ranges based on the matching profile. At stage 640, the server 400 may send a request to the UE 100 for device specific information and heading measurements 505. For example, the device specific information may include the model or manufacturer of the UE 100, the device identifier (ID) of the UE 100, the specifications for the IMU sensors 170, and / or the operating system (OS) version of the UE 100, etc. The heading measurements may include the heading measurements zk, as well as ground truth headings. The ground truth headings may be obtained through survey(s) or crowdsourcing. At stage 550, the server 400 receives, from the UE 100, the requested device specific information and heading measurements 506. At stage 560, the server 400 may compute the drift parameter ranges based on the device specific information and heading measurements 506. In computing the drift parameter ranges, the server 400 may modify or calibrate the preliminary drift parameter ranges based on the device specific information and heading measurement 506. The server 400 may store the drift parameter ranges, for example, in association with the specific retail store. The drift parameter ranges may be provided to the tracking filter 116 upon request.
[0041] After the initial configuration of the drift parameter search space, the drift parameter search space may require adjustment if the tracking filter 116 fails to converge or stabilize due to the drift accumulating in the heading measurements over time. For example, tracking filter stability or convergence issues may manifest as oscillatory or erratic behavior of the drift parameter values in their corresponding dimensions. The DCE module 117 may be configured to monitor the behavior of the drift parameters in the search space and to perform adjustments to the drift parameter search space to ensure stability and convergence by the tracking filter 116. For example, a trigger event may be defined by configuring a performance threshold at successiveAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO16checkpoints for the tracking filter 116. If the drift parameters fail to meet the performance threshold at one or more of the checkpoints, the DCE module 117 may adjust the drift parameter search space and provide the adjusted drift parameter search space to the tracking filter 116.
[0042] In one embodiment, the DCE module 117 may be configured to perform a DEC-Search Space Adjustment (DCE-SSA) function. Upon determining that the drift parameters fail to meet the performance threshold, the DCE-SSA may determine whether the size of the drift parameter search space of the order of the polynomial drift model may be causing the tracking filter’s performance issues. For example, if the drift parameter search space is too small in any dimension, then one or more of the drift parameters may oscillate between the defined range of values, and in response, the DCE module 117 may increase the drift parameter search space. For another example, if the drift parameter search space is too large in any dimension, then the drift parameters may follow a relatively smooth trajectory without convergence, and in response, the DCE module 117 may decrease the drift parameter search space. The DCE module 117 may optionally modify the number of drift parameters (i.e., the value of P in the polynomial drift model), either by increasing or decreasing the number of drift parameters, to ensure stability and convergence. The DCE module 117 may optionally request visual information from a camera located in the UE’s environment and may use the visual information to analyze the environment, such as for magnetically active objects. The DCE module 117 may adjust the drift parameter search space accordingly.
[0043] In one embodiment, the DCE module 117 may be configured to perform an RF-assisted DCE (RFA-DCE) function, possibly in conjunction with the DCE-SSA function. If the drift parameters fail to meet the performance threshold, this may be due to an inadequate RF reporting rate. For example, if the rate of reporting the RF inputs is lower than the rate of reporting the IMU inputs, then the tracking filter 116 may lack sufficient location information to adjust the drift parameter search space. In response, the DCE module 117 may send a request to the transceiver 115 to increase the reporting rate of the RF inputs. The DCE module 117 may request increases in the reporting rate of the RF inputs incrementally until the drift parameters meet the performance threshold.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO17
[0044] Referring to FIG. 6, with further reference to FIGS. 1-5, a method 600 for correction of drift in sensor measurements includes the stages shown. The method 600 is, however, an example only and not limiting. The method 600 may be altered, e.g., by having one or more stages added, removed, rearranged, combined, performed concurrently, and / or by having one or more single stages split into multiple stages.
[0045] At stage 610, the method 600 includes receiving one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of a user equipment (UE). For example at time &, the UE 100 may provide measurement report(s) zk corresponding to time tk. Each measurement report may include one or more RF inputs and one or more IMU inputs. The RF inputs may include, for example, one or more RSSI-based target location estimates (e.g., from WiFi-RSSI). The IMU inputs may include, for example, one or more dynamic heading measurements <t>k and a step count between times tk-i and tk. Other inputs may be included in a measurement report depending on the available modality (e.g., camera, WiFi-RTT, BLE, UWB). The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for receiving one or more measurement reports for a current time, comprising one or more RF measurements and one or more heading measurements from one or more sensors of a UE.
[0046] At stage 620, the method 600 includes determining one or more drift parameters values for the current time based on a drift model corresponding to the one or more sensors. For example, the drift model may include a polynomial drift correction model comprising parameters of order P. The drift parameters 6(P) may be defined based on a drift profile associated with the UE 100 or the one or more sensors 113 of the UE 100 (e.g., the IMU 170). For example, different drift profiles may be associated with different device types (model, manufacturer, etc. of the UE 100) and different IMU types. The tracking filter 116 may further predict the drift parameter values (6k, (P), ... O (i), 6k, (0)) for time tk. The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for determining one or more drift parameters values for the current time based on a drift model corresponding to the one or more sensors.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO18
[0047] At stage 630, the method 600 includes determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time. For example, the tracking filter 116 may predict the state Xk of the UE 100 for a time tk based at least on a previous state xk-of the UE 100 at a previous time tk-i. The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for determining a predicted state of the UE based on the one or more drift parameters and a state of the UE at a previous time.
[0048] At stage 640, the method 600 includes determining one or more corrected heading measurements for the UE at the current time based on the one or more drift parameters and the one or more measurements in the one or more measurement report. For example, for the time tk, the tracking filter 116 may receive measurement reports that include heading measurements zk. The tracking filter 116 may perform a dynamic heading correction <Pkto correct the heading measurements zk using the predicted drift parameters values (6k, (P), ... 6k, (i), 6k, (o>). The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for determining one or more corrected heading measurements for the UE at the current time based on the one or more drift parameters and the one or more measurements in the one or more measurement report.
[0049] At stage 650, the method 600 includes determining an estimated state of the UE at the current time based on the predicted state and the one or more corrected heading measurements at the current time. For example, the tracking filter 116 may update the state of the UE 100 to determine an estimated state x k, based on the predicted state x and the corrected heading measurements z k. The tracking filter 116 may correct the heading measurements zk based on one or more factors computed using the running estimates of the predicted drift parameter values (6k, (P), ... 6k, (i), 6k, (o>). The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for determining an estimated state of the UE at the current time based on the predicted state and the one or more corrected heading measurements at the current time.
[0050] Implementations of the method 600 may include one or more of the following features. In an example implementation, the drift parameter search space may beAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO19adjusted after initialization. Referring to FIG. 7, with further reference to FIGS. 1-5, a drift parameter search space adjustment method 700 includes the stages shown. The method 700 is, however, an example only and not limiting. The method 700 may be altered, e.g., by having one or more stages added, removed, rearranged, combined, performed concurrently, and / or by having one or more single stages split into multiple stages.
[0051] At stage 710, the method 700 includes analyzing the one or more drift parameters based on the drift model corresponding to the one or more sensors of the UE. For example, a drift parameter search space for the one or more drift parameters may be configured with an initial set of ranges for the drift parameter values. The drift parameter search space may include: an interval of possible values for coefficients of the polynomial drift correction model Sp=oand the “learning rates” defined as the parameters of the statistical model associated with the polynomial coefficients as part of the state of the tracking filter 116. After the initial configuration of the drift parameter search space, the DCE module 117 of a server 400 may monitor the behavior of the drift parameters in the search space. The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for analyzing the one or more drift parameters based on the drift model corresponding to the one or more sensors of the UE.
[0052] At stage 720, the method 700 includes determining whether a tracking filter of the UE meets a performance threshold. For example, the DCE module 117 may perform adjustments to the drift parameter search space to ensure stability and convergence by the tracking filter 116. For example, a trigger event may be defined by configuring a performance threshold at successive checkpoints. The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for determining whether a tracking filter of the UE meets a performance threshold.
[0053] At stage 730, the method 800 includes adjusting a drift parameter search space of the one or more drift parameter values based on the tracking filter failing to meet the performance threshold. For example, if the drift parameters fail to meet the performance threshold, the DCE module 117 may adjust the drift parameter search space. ForAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO20example, upon determining that the drift parameters fail to meet the performance threshold, the DCE module 117 may determine that the size of the drift parameter search space of the order of the polynomial model may be causing the tracking filter’s performance issues, and in response, increase or decrease the size of the drift parameter search space. For another example, if the drift parameters fail to meet the performance threshold, this may be due to an inadequate RF reporting rate. In response the DCE module 117 may send a request to the transceiver 115 to increase the reporting rate of the RF inputs. The one or more processors 110, possibly in combination with the one or more memories 111, and possibly in combination with the one or more sensors 113, may comprise means for adjusting a drift parameter search space of the one or more drift parameter values based on the tracking filter failing to meet the performance threshold.
[0054] Implementation examples
[0055] Implementation examples are provided in the following numbered clauses.
[0056] Clause 1. A method for correcting drift in sensor measurements, comprising: receiving one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of a user equipment (UE); determining one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; determining one or more corrected heading measurements for the current time based on the one or more drift parameter values; and determining an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
[0057] Clause 2. The method of claim 1, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement units (IMU), wherein the one or more measurements from the one or more IMU comprise one or more dynamic heading measurements and a step count between the current time and the previous time.
[0058] Clause 3. The method of clause 1, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameters with an order P.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO21
[0059] Clause 4. The method of clause 1, wherein determining the one or more drift parameter values comprises: determining a drift parameter search space comprising ranges of values for the one or more drift parameter values.
[0060] Clause 5. The method of clause 4, wherein the determining of the drift parameter search space comprises: determining the ranges of the values based on device-specific information for the UE.
[0061] Clause 6. The method of clause 4, wherein the determining of the drift parameter search space comprises: determining the ranges of the values based on a movement profile of the UE.
[0062] Clause 7. The method of clause 4, further comprising: determining an adjusted drift parameter search space based on a performance of a tracking filter of the UE in determining estimated states of the UE over time.
[0063] Clause 8. The method of clause 4, further comprising: increasing a frequency of measurement report transmission in response to receiving a measurement report rate increase request.
[0064] Clause 9. A user equipment (UE) for correcting drift in sensor measurements, comprising: one or more memories; and one or more processors communicatively coupled to the one or more memories, the one or more processors being configured to: receive one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of the UE; determine one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; determine a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; determine one or more corrected heading measurements for the current time based on the one or more drift parameter values; and determine an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
[0065] Clause 10. The UE of clause 9, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement units (IMU), wherein the one or more measurements from the one or more IMU comprise one or more dynamic heading measurements and a step count between the current time and the previous time.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO22
[0066] Clause 11. The UE of clause 9, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameters with an order P.
[0067] Clause 12. The UE of clause 9, wherein the one or more processors configured to determine the one or more drift parameter values are further configured to: determine a drift parameter search space comprising ranges of values for the one or more drift parameter values.
[0068] Clause 13. The UE of clause 12, wherein the one or more processors configured to determine the drift parameter search space are further configured to: determine the ranges of the values based on device-specific information for the UE.
[0069] Clause 14. The UE of clause 12, wherein the one or more processors configured to determine the drift parameter search space are further configured to: determine the ranges of the values based on a movement profile of the UE.
[0070] Clause 15. The UE of clause 12, wherein the one or more processors are further configured to: determine an adjusted drift parameter search space based on a performance of a tracking filter of the UE in determining estimated states of the UE over time.
[0071] Clause 16. The UE of clause 12, wherein the one or more processors are further configured to: increase a frequency of measurement report transmission in response to receiving a measurement report rate increase request.
[0072] Clause 17. A user equipment (UE) for correcting drift in sensor measurements, comprising: means for receiving one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of the UE; means for determining one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; means for determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; means for determining one or more corrected heading measurements for the current time based on the one or more drift parameter values; and means for determining an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
[0073] Clause 18. The UE of clause 17, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement unitsAttorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO23(IMU), wherein the one or more measurements from the one or more IMU comprise one or more dynamic heading measurements and a step count between the current time and the previous time.
[0074] Clause 19. The UE of clause 17, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameters with an order P.
[0075] Clause 20. The UE of clause 17, wherein the means for determining the one or more drift parameter values comprises: means for determining a drift parameter search space comprising ranges of values for the one or more drift parameter values.
[0076] Clause 21. The UE of clause 20, wherein the means for determining the drift parameter search space comprises: means for determining the ranges of the values based on device-specific information for the UE.
[0077] Clause 22. The UE of clause 20, wherein the means for determining the drift parameter search space comprises: means for determining the ranges of the values based on a movement profile of the UE.
[0078] Clause 23. The UE of clause 20, further comprising: means for determining an adjusted drift parameter search space based on a performance of a tracking filter of the UE in determining estimated states of the UE over time.
[0079] Clause 24. The UE of clause 20, further comprising: means for increasing a frequency of measurement report transmission in response to receiving a measurement report rate increase request.
[0080] Clause 25. A non-transitory, processor-readable storage medium comprising processor-readable instructions for correcting drift in sensor measurements, to cause one or more processors to: receive one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of a user equipment (UE); determine one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors; determine a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time; determine one or more corrected heading measurements for the current time based on the one or more drift parameter values; and determine an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.Attorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO24
[0081] Clause 26. The medium of clause 25, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement units (IMU), wherein the one or more measurements from the one or more IMU comprise one or more dynamic heading measurements and a step count between the current time and the previous time.
[0082] Clause 27. The medium of clause 25, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameter with an order P.
[0083] Clause 28. The medium of clause 25, wherein the processor-readable instructions to cause the one or more processors to determine the one or more drift parameter values comprise processor-readable instructions to cause the one or more processors to: determine a drift parameter search space comprising ranges of values for the one or more drift parameter values.
[0084] Clause 29. The medium of clause 28, wherein the processor-readable instructions to cause the one or more processors to determine the drift parameter search space comprise processor-readable instructions to cause the one or more processors to: determine the ranges of the values based on device-specific information for the UE.
[0085] Clause 30. The medium of clause 28, wherein the processor-readable instructions to cause the one or more processors to determine the drift parameter search space comprise processor-readable instructions to cause the one or more processors to: determine the ranges of the values based on a movement profile of the UE.
[0086] Clause 31. The medium of clause 28, wherein the processor-readable instructions further comprise processor-readable instructions to cause the one or more processors to: determine an adjusted drift parameter search space based on a performance of a tracking filter of the UE in determining estimated states of the UE over time.
[0087] Clause 32. The medium of clause 28, wherein the processor-readable instructions further comprise processor-readable instructions to cause the one or more processors to: increase a frequency of measurement report transmission in response to receiving a measurement report rate increase request.
[0088] Clause 33. A method for configuring a drift parameter search space for one or more drift parameters of a drift model for correcting drift in sensor measurements in aAttorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO25user equipment (UE), comprising: determining a movement pattern of the UE based on one or more RF location estimates for the UE; determining a movement profile matching the movement pattern of the UE; configuring preliminary drift parameter ranges for one or more drift parameters based on the movement profile; modifying the preliminary drift parameter ranges based on device specific information corresponding to the UE and one or more other heading measurements; and configuring the drift parameter search space based on the drift parameter ranges.
[0089] Clause 34. The method of clause 33, further comprising adjusting the drift parameter search space, comprising: analyzing the one or more drift parameters based on the drift model; determining whether a tracking filter of the UE meets a performance threshold; and adjusting the drift parameter search space based on the tracking filter failing to meet the performance threshold.
[0090] Clause 35. The method of clause 34, wherein the adjusting of the drift parameter search space based on the tracking filter failing to meet the performance threshold comprises: modifying a size of the drift parameter search space.
[0091] Clause 36. The method of clause 34, wherein the adjusting of the drift parameter search space based on the tracking filter failing to meet the performance threshold comprises: increasing a rate of reporting of the one or more measurement reports.
[0092] Clause 37. The method of clause 33, further comprising: sending the drift parameter search space to the UE.
[0093] Clause 38. A server for configuring a drift parameter search space for one or more drift parameters of a drift model for correcting drift in sensor measurements in a user equipment (UE), comprising: one or more memories; and one or more processors communicatively coupled to the one or more memories, the one or more processors being configured to: determine a movement pattern of the UE based on one or more RF location estimates for the UE; determine a movement profile matching the movement pattern of the UE; configure preliminary drift parameter ranges for one or more drift parameters based on the movement profile; modify the preliminary drift parameter ranges based on device specific information corresponding to the UE and one or more other heading measurements; and configure the drift parameter search space based on the drift parameter ranges.Attorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO26
[0094] Clause 39. The server of clause 38, wherein the one or more processors are further configured to adjust the drift parameter search space, wherein the one or more processors configured to adjust the drift parameter search space are further configured to: analyze the one or more drift parameters based on the drift model; determine whether a tracking filter of the UE meets a performance threshold; and adjust the drift parameter search space based on the tracking filter failing to meet the performance threshold.
[0095] Clause 40. The server of clause 39, wherein the one or more processors configured to adjust the drift parameter search space based on the tracking filter failing to meet the performance threshold are further configured to: modify a size of the drift parameter search space.
[0096] Clause 41. The server of clause 39, wherein the one or more processors configured to adjust the drift parameter search space based on the tracking filter failing to meet the performance threshold are further configured to: increase a rate of reporting of the one or more measurement reports.
[0097] Clause 42. The server of clause 38, wherein the one or more processors are further configured to: send the drift parameter search space to the UE.
[0098] Clause 43. A server for configuring a drift parameter search space for one or more drift parameters of a drift model for correcting drift in sensor measurements in a user equipment (UE), comprising: means for determining a movement pattern of the UE based on one or more RF location estimates for the UE; means for determining a movement profile matching the movement pattern of the UE; means for configuring preliminary drift parameter ranges for one or more drift parameters based on the movement profile; means for modifying the preliminary drift parameter ranges based on device specific information corresponding to the UE and one or more other heading measurements; and means for configuring the drift parameter search space based on the drift parameter ranges.
[0099] Clause 44. The server of clause 43, further comprising means for adjusting the drift parameter search space, wherein the means for adjusting the draft parameter search space comprises: means for analyzing the one or more drift parameters based on the drift model; means for determining whether a tracking filter of the UE meets aAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO27performance threshold; and means for adjusting the drift parameter search space based on the tracking filter failing to meet the performance threshold.
[0100] Clause 45. The server of clause 44, wherein the means for adjusting of the drift parameter search space based on the tracking filter failing to meet the performance threshold comprises: means for modifying a size of the drift parameter search space.
[0101] Clause 46. The server of clause 44, wherein the means for adjusting of the drift parameter search space based on the tracking filter failing to meet the performance threshold comprises: means for increasing a rate of reporting of the one or more measurement reports.
[0102] Clause 47. The server of clause 43, further comprising: means for sending the drift parameter search space to the UE.
[0103] Clause 48. A non-transitory, processor-readable storage medium comprising processor-readable instructions for configuring a drift parameter search space for one or more drift parameters of a drift model for correcting drift in sensor measurements in a user equipment (UE), to cause one or more processors to: determine a movement pattern of the UE based on one or more RF location estimates for the UE; determine a movement profile matching the movement pattern of the UE; configure preliminary drift parameter ranges for one or more drift parameters based on the movement profile; modify the preliminary drift parameter ranges based on device specific information corresponding to the UE and one or more other heading measurements; and configure the drift parameter search space based on the drift parameter ranges.
[0104] Clause 49. The medium of clause 48, wherein the one or more processors are further configured to adjust the drift parameter search space, wherein the one or more processors configured to adjust the drift parameter search space are further configured to: analyze the one or more drift parameters based on the drift model; determine whether a tracking filter of the UE meets a performance threshold; and adjust the drift parameter search space based on the tracking filter failing to meet the performance threshold.
[0105] Clause 50. The medium of clause 49, wherein the one or more processors configured to adjust the drift parameter search space based on the tracking filter failing to meet the performance threshold are further configured to: modify a size of the drift parameter search space.Attorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO28
[0106] Clause 51. The medium of clause 49, wherein the one or more processors configured to adjust the drift parameter search space based on the tracking filter failing to meet the performance threshold are further configured to: increase a rate of reporting of the one or more measurement reports.
[0107] Clause 52. The medium of clause 48, wherein the one or more processors are further configured to: send the drift parameter search space to the UE.
[0108] Other considerations
[0109] Other examples and implementations are within the scope of the disclosure and appended claims. For example, due to the nature of software and computers, functions described above can be implemented using software executed by a processor, hardware, firmware, hardwiring, or a combination of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations.
[0110] As used herein, the singular forms “a,” “an,” and “the” include the plural forms as well, unless the context clearly indicates otherwise. Thus, reference to a device in the singular (e.g., “a device,” “the device”), including in the claims, includes at least one, i.e., one or more, of such devices (e.g., “a processor” includes at least one processor (e.g., one processor, two processors, etc.), “the processor” includes at least one processor, “a memory” includes at least one memory, “the memory” includes at least one memory, etc.). The phrases “at least one” and “one or more” are used interchangeably and such that “at least one” referred-to object and “one or more” referred-to objects include implementations that have one referred-to object and implementations that have multiple referred-to objects. For example, “at least one processor” and “one or more processors” each includes implementations that have one processor and implementations that have multiple processors. Also, a “set” as used herein includes one or more members, and a “subset” contains fewer than all members of the set to which the subset refers.
[0111] The terms “comprises,” “comprising,” “includes,” and / or “including,” as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO29
[0112] Also, as used herein, “or” as used in a list of items (possibly prefaced by “at least one of’ or prefaced by “one or more of’) indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C,” or a list of “one or more of A, B, or C” or a list of “A or B or C” means A, or B, or C, or AB (A and B), or AC (A and C), or BC (B and C), or ABC (i.e., A and B and C), or combinations with more than one feature (e.g., AA, AAB, ABBC, etc.). Thus, a recitation that an item, e.g., a processor, is configured to perform a function regarding at least one of A or B, or a recitation that an item is configured to perform a function A or a function B, means that the item may be configured to perform the function regarding A, or may be configured to perform the function regarding B, or may be configured to perform the function regarding A and B. For example, a phrase of “a processor configured to measure at least one of A or B” or “a processor configured to measure A or measure B” means that the processor may be configured to measure A (and may or may not be configured to measure B), or may be configured to measure B (and may or may not be configured to measure A), or may be configured to measure A and measure B (and may be configured to select which, or both, of A and B to measure). Similarly, a recitation of a means for measuring at least one of A or B includes means for measuring A (which may or may not be able to measure B), or means for measuring B (and may or may not be configured to measure A), or means for measuring A and B (which may be able to select which, or both, of A and B to measure). As another example, a recitation that an item, e.g., a processor, is configured to at least one of perform function X or perform function Y means that the item may be configured to perform the function X, or may be configured to perform the function Y, or may be configured to perform the function X and to perform the function Y. For example, a phrase of “a processor configured to at least one of measure X or measure Y” means that the processor may be configured to measure X (and may or may not be configured to measure Y), or may be configured to measure Y (and may or may not be configured to measure X), or may be configured to measure X and to measure Y (and may be configured to select which, or both, of X and Y to measure).
[0113] As used herein, unless otherwise stated, a statement that a function or operation is “based on” an item or condition means that the function or operation is based on the stated item or condition and may be based on one or more items and / or conditions in addition to the stated item or condition.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO30
[0114] Substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and / or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.) executed by a processor, or both. Further, connection to other computing devices such as network input / output devices may be employed. Components, functional or otherwise, shown in the figures and / or discussed herein as being connected or communicating with each other are communicatively coupled unless otherwise noted. That is, they may be directly or indirectly connected to enable communication between them.
[0115] The systems and devices discussed above are examples. Various configurations may omit, substitute, or add various procedures or components as appropriate. For instance, features described with respect to certain configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves and, thus, many of the elements are examples and do not limit the scope of the disclosure or claims.
[0116] A wireless communication system is one in which communications are conveyed wirelessly, i.e., by electromagnetic and / or acoustic waves propagating through atmospheric space rather than through a wire or other physical connection, between wireless communication devices. A wireless communication system (also called a wireless communications system, a wireless communication network, or a wireless communications network) may not have all communications transmitted wirelessly, but is configured to have at least some communications transmitted wirelessly. Further, the term “wireless communication device,” or similar term, does not require that the functionality of the device is exclusively, or even primarily, for communication, or that communication using the wireless communication device is exclusively, or even primarily, wireless, or that the device be a mobile device, but indicates that the device includes wireless communication capability (one-way or two-way), e.g., includes at least one radio (each radio being part of a transmitter, receiver, or transceiver) for wireless communication.
[0117] Specific details are given in the description herein to provide a thorough understanding of example configurations (including implementations). However,Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO31configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the configurations. The description herein provides example configurations, and does not limit the scope, applicability, or configurations of the claims. Rather, the preceding description of the configurations provides a description for implementing described techniques. Various changes may be made in the function and arrangement of elements.
[0118] The terms “processor-readable medium,” “machine-readable medium,” and “computer-readable medium,” as used herein, refer to any medium that participates in providing data that causes a machine to operate in a specific fashion. Using a computing platform, various processor-readable media might be involved in providing instructions / code to processor(s) for execution and / or might be used to store and / or carry such instructions / code (e.g., as signals). In many implementations, a processor-readable medium is a physical and / or tangible storage medium. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media include, for example, optical and / or magnetic disks. Volatile media include, without limitation, dynamic memory.
[0119] Having described several example configurations, various modifications, alternative constructions, and equivalents may be used. For example, the above elements may be components of a larger system, wherein other rules may take precedence over or otherwise modify the application of the disclosure. Also, a number of operations may be undertaken before, during, or after the above elements are considered. Accordingly, the above description does not bound the scope of the claims.
[0120] Unless otherwise indicated, “about” and / or “approximately” as used herein when referring to a measurable value such as an amount, a temporal duration, and the like, encompasses variations of ±20% or ±10%, ±5%, or ±0.1% from the specified value, as appropriate in the context of the systems, devices, circuits, methods, and other implementations described herein. Unless otherwise indicated, “substantially” as used herein when referring to a measurable value such as an amount, a temporal duration, a physical attribute (such as frequency), and the like, also encompasses variations of ±20% or ±10%, ±5%, or ±0.1% from the specified value, as appropriate in the context of the systems, devices, circuits, methods, and other implementations described herein.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO32
[0121] A statement that a value exceeds (or is more than or above) a first threshold value is equivalent to a statement that the value meets or exceeds a second threshold value that is slightly greater than the first threshold value, e.g., the second threshold value being one value higher than the first threshold value in the resolution of a computing system. A statement that a value is less than (or is within or below) a first threshold value is equivalent to a statement that the value is less than or equal to a second threshold value that is slightly lower than the first threshold value, e.g., the second threshold value being one value lower than the first threshold value in the resolution of a computing system.Attorney Docket No. PB0207GR.WO (114958.6175)
Claims
Qualcomm Ref. No. 2407500WO33CLAIMS:We claim:
1. A method for correcting drift in sensor measurements, comprising: receiving one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of a user equipment (UE);determining one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors;determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time;determining one or more corrected heading measurements for the current time based on the one or more drift parameter values; anddetermining an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
2. The method of claim 1, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement units (IMU), wherein the one or more measurements from the one or more IMU comprise one or more dynamic heading measurements and a step count between the current time and the previous time.
3. The method of claim 1, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameters with an order P.
4. The method of claim 1, wherein determining the one or more drift parameter values comprises: determining a drift parameter search space comprising ranges of values for the one or more drift parameter values.
5. The method of claim 4, wherein the determining of the drift parameter search space comprises: determining the ranges of the values based on device-specific information for the UE.Atorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO346. The method of claim 4, wherein the determining of the drift parameter search space comprises: determining the ranges of the values based on a movement profile of the UE.
7. The method of claim 4, further comprising: determining an adjusted drift parameter search space based on a performance of a tracking filter of the UE in determining estimated states of the UE over time.
8. The method of claim 4, further comprising: increasing a frequency of measurement report transmission in response to receiving a measurement report rate increase request.
9. A user equipment (UE) for correcting drift in sensor measurements, comprising:one or more memories; andone or more processors communicatively coupled to the one or more memories, the one or more processors being configured to:receive one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of the UE;determine one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors;determine a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time;determine one or more corrected heading measurements for the current time based on the one or more drift parameter values; anddetermine an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
10. The UE of claim 9, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement units (IMU), wherein the one or more measurements from the one or more IMU comprise oneAtorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO35or more dynamic heading measurements and a step count between the current time and the previous time.
11. The UE of claim 9, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameters with an order P.
12. The UE of claim 9, wherein the one or more processors configured to determine the one or more drift parameter values are further configured to: determine a drift parameter search space comprising ranges of values for the one or more drift parameter values.
13. The UE of claim 12, wherein the one or more processors configured to determine the drift parameter search space are further configured to: determine the ranges of the values based on device-specific information for the UE.
14. The UE of claim 12, wherein the one or more processors configured to determine the drift parameter search space are further configured to: determine the ranges of the values based on a movement profile of the UE.
15. The UE of claim 12, wherein the one or more processors are further configured to: determine an adjusted drift parameter search space based on a performance of a tracking filter of the UE in determining estimated states of the UE over time.
16. The UE of claim 12, wherein the one or more processors are further configured to: increase a frequency of measurement report transmission in response to receiving a measurement report rate increase request.
17. A user equipment (UE) for correcting drift in sensor measurements, comprising:Attorney Docket No. PB0207GR.WO (114958.6175)Qualcomm Ref. No. 2407500WO36means for receiving one or more measurement reports for a current time, comprising one or more radio frequency (RF) measurements and one or more heading measurements from one or more sensors of the UE;means for determining one or more drift parameter values for the current time based on a drift model corresponding to the one or more sensors;means for determining a predicted state of the UE based on the one or more drift parameter values and a state of the UE at a previous time;means for determining one or more corrected heading measurements for the current time based on the one or more drift parameter values; andmeans for determining an estimated state of the UE for the current time based on the predicted state and the one or more corrected heading measurements.
18. The UE of claim 17, wherein the one or more heading measurements comprise one or more measurements from one or more inertial measurement units (IMU), wherein the one or more measurements from the one or more IMU comprise one or more dynamic heading measurements and a step count between the current time and the previous time.
19. The UE of claim 17, wherein the drift model comprises a polynomial drift correction model comprising one or more drift parameters with an order P.
20. The UE of claim 17, wherein the means for determining the one or more drift parameter values comprises: means for determining a drift parameter search space comprising ranges of values for the one or more drift parameter values.Atorney Docket No. PB0207GR.WO (114958.6175)