System and method for positioning

By using time window and displacement adjustment technology in positioning technology, the problems of accuracy and robustness of positioning technology in complex environments are solved, and efficient position estimation in moving devices and changing environments are achieved.

CN119422067APending Publication Date: 2025-02-11CROWD CONNECTED LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380046206.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-10
Filing Date
2023-05-17
Publication Date
2025-02-11

AI Technical Summary

Technical Problem

Existing positioning techniques are difficult to achieve accurate and robust position estimation in complex environments, especially when the device moves rapidly or the environment changes greatly.

Method used

By receiving observations between multiple distributed anchors, defining a time window and estimating the displacement of the device, adjusting the anchor position to compensate for the influence of device movement, thereby calculating the position of the device at a required time.

Benefits of technology

Accurate and robust position estimation in challenging environments, avoiding deviations from Kalman filters in nonlinear systems, simplifying the sensor fusion process, and reducing calibration overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119422067A_ABST
    Figure CN119422067A_ABST
Patent Text Reader

Abstract

A computer-implemented method (600) for estimating a location of a movable device in an environment at a required time. The first sensor obtains first observations at different times between the device and a plurality of distributed anchors having known locations in the environment (615). For each observation (650) obtained at a point in time within the time window, a distance and / or angle (640) from the device to the anchor is estimated, and a displacement (660) of the device between the time at which the observation was obtained and the required time is estimated based on a second observation (625) obtained by the second sensor. The position of the anchor is adjusted by the displacement to compensate for effects of movement of the device (665). A position (670, 680) of the device at the desired time is calculated based on the distance and / or angle and the adjusted anchor position.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a system and method for locating a device or object. Particular embodiments relate to any distance or angle based positioning technology for a mobile device. The positioning technology can be indoor positioning using, for example, mobile device sensing technology (e.g., Bluetooth Low Energy beacon) or outdoor positioning using, for example, Global Navigation Satellite System (GNSS) or Enhanced Loran (eLoran). Background Art

[0002] Current wireless applications and anticipated future wireless applications strongly rely on precise real-time positioning. For example, a variety of applications such as smart cities, the Internet of Things (IoT), medical services, the automotive industry, underwater exploration, public safety, and military systems require reliable and accurate positioning technology.

[0003] Positioning systems generally require sensors to 1) measure the movement of objects within the environment or 2) measure some property or properties of the environment to obtain context clues to help infer location.

[0004] An example of the first technique is a revolution counter which is located on the wheels of the vehicle and gives information about the movement of the vehicle, which can be combined with directional information from a compass or magnetometer to construct a movement vector relative to the starting point from which the new position can be calculated. This is sometimes described as "dead reckoning".

[0005] Within the second technology, there are roughly two types of information about the environment that can be used for positioning. The first is of a geometric nature. In a simple case, it can include finding the distance or angle to an anchor (such as a Bluetooth beacon or other radio frequency (RF) beacon) at a known location in the environment based on sensor data. In a simple case, this information can be used together with a triangulation method or a triangulation method to calculate the position. In the complex case of GNSS positioning (such as the global positioning system (GPS)), the device obtains distance information of satellites with mobile positions, where the device can obtain the position of the satellites at any time, so that mathematical techniques can be used on the distance to the satellite position to calculate the device position in the GNSS coordinate system.

[0006] The second type of information is non-geometric in nature. Instead, each location in the environment is identified using a unique set of information that can be detected from each part of the environment. An example is a warehouse robot identifying a unique barcode mapped to a location in the environment. There are also more complex techniques, such as radio frequency (RF) fingerprinting. This technology relies on first capturing a set of radio frequency signals observed at each location in the environment to generate a lookup database, which maps the signals to the entire environment, and then uses the lookup database to locate devices that can measure radio frequency signals. These techniques can give good results in ideal situations. However, building these lookup databases is cumbersome, and the time to build these lookup databases increases with the size of the environment. They are also not very robust (i.e., they are too sensitive to configuration) and are difficult to work in changing environments and on different devices.

[0007] In both geometric and non-geometric positioning cases, there may be any number of onboard and external sensors for measuring the relative or absolute motion characteristics of an object, as well as sensors for measuring the environment. In these cases, it is advantageous to combine or fuse multiple data sources together. The main advantage of doing so is that it will improve positioning accuracy. Since the fused position from multiple sensors will balance the strengths and weaknesses of the different sensors and the position errors from different sources should be largely uncorrelated, the fused position should be more accurate.

[0008] Known methods for combining data from two or more sources include Kalman filters and particle filters. A Kalman filter is a recursive estimator that estimates the variables of a model (e.g., the physical laws describing the motion of a vehicle) based on observable inputs from sensors and the hidden state of the system. The state estimate from the previous time step is used together with the new observations to update the model variables. A particle filter uses a Monte Carlo type of localization method. This technique uses a set of particles to propagate imperfect knowledge through a dynamic model. Each particle represents the weight of a specific starting position or the input error due to measurement noise. The posterior distribution obtained based on the results of all particles represents the error of the calculated model variables (e.g., position).

[0009] For example, in the field of robotics, Kalman filters have become the de facto standard approach to sensor fusion problems due to their computational efficiency and minimal work. However, ordinary Kalman filters make several assumptions about the dynamics of the system and the measurements. First, the state dynamics are linear in time. Second, the noise in the state dynamics is normally distributed. Third, the observations are linear functions of the state. For example, the number of revolutions of the wheels used to control the pulley system on an elevator is a linear function of the lift elevation. Fourth, the observation noise is normally distributed.

[0010] In most practical applications, some or all of these assumptions do not hold. The dynamics of the control system are often nonlinear, and sensor responses are often nonlinear as well. In general, sensors may intermittently report outliers or anomalous data points, distorting the noise distribution of the observations. Another complication is that modeling all aspects of the dynamics can be challenging. Any unmodeled dynamics are captured as noise and therefore may have non-Gaussian components.

[0011] The Extended Kalman filter (EKF) was developed for nonlinear systems, which can be linearized around a point using Taylor series expansion. In this version of the filter, the state transitions and measurement models do not have to be linear functions of the state, but should be differentiable functions. Unlike the standard Kalman filter, the EKF is not an optimal estimator, which means that the EKF may not converge to minimize the residual error in the measurement. If the initial state of the system is wrong, or the model is not accurate enough, the filter may deviate from the true state.

[0012] An example of a fusion approach to indoor positioning is given in the academic paper by Jeongsik Choi and Yang-Seok Choi [6] titled: “Calibration-free positioning technique using Wi-Fi Ranging and Build-in Sensors of Mobile Devices”, URL: https: / / aRXiv.org / pdf / 2003.06013.pdf. The paper describes a method for calculating the position of a mobile device based on fixed anchors (WiFi access points) without any initial "fingerprint" survey. They also solve for hidden state parameters (including path loss exponent, receiver sensitivity, heading offset and step size) in real time. The technique consists of three parts: (i) initial calibration, (ii) self-calibration of the WiFi ranging module, and (iii) Kalman filter-based positioning and calibration of the pedestrian dead reckoning module. The initial (and self) calibration produces estimates of the hidden state parameters by iterating over a series of pedestrian footsteps and looping through a set of WiFi distances observed at the time of each footstep for each footstep. The value of the hidden state can be estimated by minimizing (using gradient descent) a cost function based on the squared difference between the estimated WiFi distance and the distance to the access point (AP) based on the estimated position at the time of the footstep.

[0013] Therefore, the mathematical framework used to obtain the hidden state is centered on the walker's footsteps. Once the hidden state has been estimated, they use an extended Kalman filter to calculate the device position.

[0014] The applicant has found that a disadvantage of this approach is that when using measurements from devices in a complex real-world deployment (eg an exhibition venue), the Extended Kalman Filter may give positions that rapidly deviate from reality.

[0015] The present invention generally aims to improve positioning technology and mitigate or avoid the above-mentioned disadvantages of existing solutions by providing a positioning solution that is easy to establish, accurate and robust even in challenging environments. Summary of the invention

[0016] According to a first aspect of the present invention, there is provided a computer-implemented method for estimating a position of a mobile device in an environment, the method comprising:

[0017] receiving a first set of observations obtained between the device and a plurality of distributed anchors at different times, wherein the anchors have known positions in the environment and the observations are obtained by a first set of one or more sensors;

[0018] defining a time window for a desired time during which the position of the device is to be estimated;

[0019] For each observation obtained at a time point within the time window:

[0020] estimating the distance and / or angle from the device to the anchor based on the observations;

[0021] estimating a displacement of the device due to movement of the device between a time when the observation is obtained and a desired time, wherein the displacement is estimated based at least in part on observations obtained by a second set of one or more sensors;

[0022] Adjusting the position of the anchor involved in the observations by displacement to compensate for the effects of the motion of the device; and

[0023] The position of the device at the desired time is calculated based on the distance and / or angle and the adjusted anchor position.

[0024] The present invention provides a new method for fusing distance and displacement measurements within a time window to estimate the position of a moving object at a desired time.

[0025] It should be noted that "positioning" as used herein is intended to encompass any scheme for determining the position of a device or object in an environment, including "localisation" techniques (a term sometimes used in academic papers) where the device itself determines the position of the device in the environment and positioning schemes involving a sensor system locating an object within a sensor field. The device may be, for example, an electronic device that includes some or all sensors and / or performs some or all calculations, or may be passive, such that the sensors are located external to the device and / or the calculations are performed external to the device.

[0026] The method estimates the position from the observations using times within a defined time window. The window may be a 30 second duration (or any other duration) before the time at which the desired position estimate is to be made. This window may be selected when the position is to be calculated in real time or near real time. Alternatively, if positioning is performed retrospectively, the window may be centered at the time at which the position estimate is desired. The window will typically contain the time at which the position estimate is desired, but this is not a requirement. In principle, any offset may be used, but in most cases the window is preferably close to the time at which a position estimate is desired.

[0027] The importance of using a time window to estimate the position can be seen from the simple case of a stationary device. When calculating the position of a stationary device based on the distance to an anchor location (e.g., an RF beacon or other wireless beacon), using only the nearest distance may give a poor position because measurement noise can cause overestimation and / or underestimation of the distance. However, since measurement noise can be overcome by taking more measurements, the position may be more accurate if measurements within a larger time window are used.

[0028] In case of a moving device and using the distance / angle to the anchor position alone, it is not possible to extend the time window since the position of the object varies during the time window.

[0029] The key innovation of this method is to use the stored displacement data from the second set of sensors (e.g., onboard inertial, accelerometer, and gyroscope sensors) to calculate the position of the moving device at the desired time using an extended data window. The extended data window enables more accurate positioning for the same reasons described for the case of a stationary device. In effect, all observations are shifted to a single reference point, the time when the position is to be estimated, by adjusting the anchor positions to compensate for the device displacement since the observations were made to those anchors.

[0030] In other words, the method obtains observations over a longer time window and corrects for device motion by, for example, sensing displacement using inertial sensors, rather than obtaining anchor observations from a short time window during which the device can be assumed to be stationary.

[0031] The calculation of the position can then use these estimated distances / angles interchangeably in the calculation, i.e., the time correlation of each reading is removed, so that, for example, these distances / angles can be processed in any order. Simple triangulation techniques or triangulation techniques can be used together with the distances / angles and the adjusted anchor positions to estimate the device position. Due to noise, etc., the distance / angle observations may inherently contain a certain degree of error, so that no position estimate will perfectly fit all the data, and there will be some residual error in the calculation. Therefore, multidimensional scaling (MDS) can be used as a suitable technique to deal with such residual errors to estimate the position. In the examples given herein, weighted MDS (wMDS) is particularly preferred.

[0032] The distance and / or angle indicate the position of the anchor relative to the device. These distances and / or angles can be expressed in any coordinate system (e.g., polar coordinates, cartesian coordinates, etc.), and these distances and / or angles alone or in combination allow the position of the device to be estimated relative to the anchor, and therefore, by knowing the absolute position of the anchor in the desired reference frame, the position of the device is estimated in absolute form. When the observations are converted into distance values, these values ​​are preferably in the coordinate space as the anchor position (e.g., both are expressed in meters), which can make the calculation of the estimated position of the device simpler or more accurate. Models such as path loss models for signal strength observations or scaling factors can be applied to move from observations to distances. In other instances, the observations may be sufficiently correlated with the distances so that the calculations used to estimate the position can act directly on the observations as distances. For example, the wMDS technique can in principle use signal strength values ​​as distance values ​​when finding a position.

[0033] Since the position of the anchor is known, once the position of the mobile device relative to the anchor is known, it can be mapped to an absolute position in the environment. The method can then be repeated at different points in time, for example using a sliding window of data.

[0034] The anchor may have a fixed position, so that the method may know the position of the anchor in an initial configuration step, or, for example in the case of GNSS, the anchor may be mobile and the position of the anchor calculated independently of the method and available to the method at the relevant time when the observations are obtained. In any case, the position of the anchor is known at the time the observations are obtained and is used by the algorithm to estimate the position.

[0035] In the calculation of the same position (i.e., multiple observations of the same anchor obtained at different times and shifted to the same time frame), an anchor may be counted twice. It is also possible that some anchors are counted only once because they enter / exit the distance as the device moves.

[0036] By using a time window of the data, this method can utilize a large number of measurements to compute a single position. It produces an accurate and robust position estimate even when the measurements are noisy. It was found to be simpler and more robust than alternative sensor fusion methods using Kalman filters, while avoiding the calibration overhead associated with alternative "fingerprinting" techniques.

[0037] Since observations are usually transmitted at a fixed frequency, using a longer time window will obtain more observations for each anchor. There may be both random noise and systematic noise in the observations. Using more observations will reduce the impact of random noise. If the transmission frequency is low compared to the window, this can also increase the number of different anchors observed. There may potentially be time varying errors. Therefore, obtaining observations at different times will increase the temporal diversity of the measurement, thereby reducing these errors.

[0038] By using observations from different locations, the method increases the number of different anchors observed, since these anchors may be visible in some locations and not in others. It also gains spatial diversity - which can have a "fast-fading" effect. For example, for WiFi round trip time (RTT), the observed distance error may fluctuate by every 50 centimeters or so, which is related to the wavelength of the signal. By obtaining observations from different distances, these effects can be mitigated. Or, for example, received signal strength indicator (RSSI) measurements may be affected by shadowing, resulting in spatially correlated errors, which can be mitigated by spatial diversity.

[0039] In addition to estimating position, this method can also be used to simultaneously calculate other unknown variables associated with the dynamics of the system or parameters associated with sensors or the environment. These variables that are usually needed for the position calculation would have to be found by other means, such as through calibration. In practice, a large number of different parameter values ​​are tried, and the positioning algorithm (e.g., MDS) is run for each parameter value to see which parameter values ​​minimize some error or stress measurement in the positioning algorithm. This makes the system "adaptive". In practice, most of these parameters will change over time.

[0040] This technology is distance-based and therefore enables the location of moving objects (e.g. mobile devices) without the need to survey the environment and create a so-called "fingerprint". The advantage is that these surveys are time-consuming, can vary from device to device, and become outdated as soon as the environment changes. The invention makes it possible to build a truly self-service positioning system.

[0041] The technique using distance description can be extended to angle-of-arrival and angle-of-departure positioning.

[0042] The described techniques are applicable to any positioning using distance or angle to an anchor with a known position. Distance can be estimated based on time of flight (e.g. WiFi 802.11mc), phase measurement (e.g. Dialog's proprietary WiRa extension to the Bluetooth specification), or signal strength (e.g. RSSI measurement for Bluetooth low energy). In principle, any ranging or angle technique can be utilized. The techniques can also be extended to outdoor positioning, e.g. using GNSS or eLoran.

[0043] In one embodiment, the transmitter is a Bluetooth beacon, and the mobile device contains a Bluetooth chip that can scan for Bluetooth signals. The device contains an accelerometer and a gyroscope to sense the displacement of the device. Therefore, this is very useful for modern smartphones, tablets, and other mobile computing devices that are usually equipped with suitable sensors.

[0044] In other embodiments, any technology may be utilized to determine the distance from the mobile device to the anchor, including the use of other RF signals (e.g., WiFi 802.11mc, 801.11az) and other signals or waveforms that can propagate between the device and the anchor in the environment (e.g., ultrasound, radar, sonar, laser, ultra wideband (UWB), etc.), the properties of which may be measured to indicate the distance. There is no limitation on using different types of anchors utilizing different distance determination technologies simultaneously.

[0045] In other embodiments, the angle between the mobile device and the anchor is sensed, for example using Bluetooth arrival or departure angles.

[0046] In other embodiments, the mobile device may transmit the signal, and the anchor may receive the signal. The observations from those anchors may be used to estimate distances and / or angles, for example, by sending the observations to a server or other device that receives all observations.

[0047] In other embodiments, displacement of the device may be sensed in other ways using sensors located on the device or elsewhere.

[0048] In an embodiment, the position may be evaluated periodically, for example with a period between 0.5 seconds and 5 seconds.

[0049] In an embodiment, geometric techniques are used to calculate the adjusted position. For example, the displacement can be decomposed into x and y components and added to the x and y coordinates of the anchor position. Generally, this method is computationally inexpensive.

[0050] In an embodiment, the position is calculated using a multi-dimensional scaling algorithm.

[0051] Preferably, the first set of sensors is different from the second set of sensors. The first set of sensors may detect the strength, flight time, phase, angle, or arrival or departure of wireless signals emitted by the anchor and detected by the device and / or emitted by the device and detected by the anchor. The wireless signal may be an electromagnetic signal, including: RF signals (e.g., radio waves or microwaves), such as (for example) Bluetooth, radar or light beams (e.g., laser positioning) (including visible light, ultraviolet or infrared signals); or sound waves, such as ultrasound, sonar, etc. The second sensor may include sensors located on the device and used to detect the movement of the device within the environment. For example, these sensors may include inertial sensors (e.g., accelerometers, gyroscopes and / or magnetometers) and / or other sensors that allow the measurement of the distance traveled by the device in the direction of the device (i.e., the forward direction) (sometimes referred to as "dead reckoning" positioning calculations). Depending on the application, it may be based on detecting pedestrian steps based on inertial measurements, or based on vehicle or robot positioning using rotation measurements of wheels / tracks / drive systems as a supplement to or in lieu of inertial measurements to estimate displacement. Therefore, different types of sensors are fused together in a way that leverages the strengths and capabilities of each type of sensor.

[0052] In an embodiment, the position is calculated using trilateration or triangulation and using 3 or more measurements.

[0053] A method according to any preceding claim, wherein at least one of the following:

[0054] i) Estimate distance and / or angle

[0055] ii) estimating the displacement of the device, and

[0056] iii) Estimate the location of the device based on the observation results

[0057] is based on a model with at least one hidden state parameter.

[0058] In an embodiment, the method includes estimating hidden state parameters using an optimization technique that minimizes the difference between the expected and observed values ​​of the distance to the anchor, or the difference between the expected observation and the actual observation. Typically, this is an iterative process of adjusting the parameters and observing their effect on the results until a desired level of convergence is reached or the value of the difference is acceptable.

[0059] Thus, in addition to estimating the position as claimed in claim 1, the method can also be used to estimate hidden states associated with the sensor mechanism and the system dynamics mechanism. A more accurate estimate of the hidden state enables a more accurate device position to be calculated.

[0060] In one embodiment of an Indoor Positioning System (IPS) consisting of Bluetooth beacons at fixed locations and mobile devices containing sensors, there are many hidden state variables. The Bluetooth chip on the phone reports received signal strength (RSSI) values ​​based on the observed beacons. These signal strengths must be converted into estimated distances. This can be achieved using the following standard attenuation model:

[0061]

[0062] Where p is the path loss exponent, TX is the transmit power of the Bluetooth beacon, and RX is the receiver sensitivity. In general, at least some of the parameters of this model are unknown. The path loss exponent and receiver sensitivity are typically unknown and vary with the environment, between devices, and over time. The beacon transmit power is typically specified by the manufacturer, but even this parameter can vary over time, for example as the battery powering the beacon is discharged.

[0063] The onboard accelerometers measure the force on the device in each of three orthogonal directions, and the gyroscopes measure the relative orientation of the device. In theory, accurate position displacement should be obtainable based on these sensor measurements alone. However, the mass-produced chips in modern smartphones are not very accurate and measurement errors compound over time, meaning that these chips are generally not well suited for this task.

[0064] A more efficient approach is to detect footsteps from accelerometer data and associate each footstep with a heading. It is relatively simple to detect footsteps from the repetitive pattern of accelerations that results from a person's gait. Therefore, displacement data can be conveniently parameterized into headings and footsteps. However, even with this parameterization, there are at least two reasons why this data is imperfect.

[0065] First, mobile compasses are inaccurate in indoor environments. Other sensors, such as gyroscopes, report headings relative to an arbitrary unknown axis that can drift or even reset over time.

[0066] Second, although well-known methods recognize footsteps from acceleration patterns, these methods often produce inaccurate estimates of step length.

[0067] Therefore, the heading deviation between the heading measurement and the absolute axis defined by the map or site plan, as well as the step length, can be considered as the hidden state of the system. These hidden state variables can be fused with the relative heading data from the gyroscope and the footstep detection data from the accelerometer to map the displacement of the device throughout the environment.

[0068] In one possible embodiment, there are four hidden variables that can vary in space and time: path loss exponent, receiver (RX) sensitivity, heading offset, and step size. In this embodiment, the transmitter (TX) power of the beacon is assumed to be known because it is specified by the manufacturer.

[0069] In other embodiments, the parameters needed to calculate distance from observations or displacement from sensor readings may not represent any physical quantity, but rather they are generally just parameters needed to transform from observations to distance or displacement.

[0070] Parameterizing the hidden variables using a model enables calculation of expected values ​​of observables such as RSSI from a beacon signal or its corresponding distance, and this provides a method for evaluating the hidden state.

[0071] For example, modifying the step size changes the beacon shift calculated as described in claim 1. This results in a different estimated device position and therefore the expected distance to the beacon also changes. As the step size changes, the optimal value of the step size can be found by minimizing the difference between the expected RSSI / distance and the observed RSSI / distance. In practice, this can be done by a numerical optimizer (e.g., the Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm or a gradient descent algorithm).

[0072] Once the hidden state is evaluated, the final position at the desired time can be calculated using the method as claimed in claim 1 .

[0073] It will be appreciated that different models with different hidden parameters may be used and that this depends largely on the type of sensor used and other implementation details.

[0074] In an embodiment, optimizing comprises:

[0075] i) finding a temporary estimated position of the device using the current hidden state parameters according to the method of claim 1;

[0076] ii) comparing the temporary estimated position of the device with the adjusted beacon position to obtain an expected range value or an observed value;

[0077] iii) calculating the combined difference and determining whether the convergence criterion is met; and,

[0078] iv) If the criterion is not met, adjusting at least one hidden parameter and repeating steps i) to iii) until the criterion is met, and if the criterion is met, using the adjusted parameter value as the new parameter value in future parameter and / or position estimates.

[0079] In general, the optimization will operate on multiple observations in a window and requires minimizing some average value (e.g., root mean square error (RMSE)) of the individual differences based on the expected value using the temporary estimate of the position and the observed value (which may be RSSI value in sensor space or distance in position space, for example). For example, the mean square error or a similar known error function may be used.

[0080] In an embodiment, the hidden state parameters used to estimate the displacement of the device include one or more of the following: step length, starting position or starting heading, heading offset, and offset drift. Any of these parameters may be useful parameters when modeling how sensor readings are converted to physical displacement. In the detailed examples given, step length and heading offset are the main examples given in the pedestrian dead reckoning system. Starting position or starting heading and offset drift may be used in more complex models to improve accuracy. Other parameters are also possible depending on the physical system and the model chosen to represent the physical system.

[0081] In another embodiment, the hidden state parameters used to determine the distance to the observed anchor include one or more of TX power, path loss, and RX sensitivity.

[0082] In an embodiment, the time window used to estimate the position and hidden state is tuned or dynamically adjusted in duration or offset. The duration of the time window used to estimate the position and hidden state can be modified or tuned depending on the application. In some applications, it may be beneficial to dynamically change the duration of the time window depending on the nature of the system or one or more external factors.

[0083] For example, in the indoor positioning system (IPS) example described herein, increasing the size of the time window increases the number of Bluetooth observations that can be used, but it also potentially increases the displacement applied to the beacon depending on the distance the device moves within the window.

[0084] In the extreme case where the device remains stationary, the time window can be relatively large (30 seconds to 2 minutes), and all Bluetooth observations in this window can be used to calculate the position. Another extreme case is when someone is walking or running with a device at a certain speed. In order to obtain accurate results in this extreme case, a smaller time window (5 seconds to 10 seconds) may be preferred. This is because small errors in the hidden state (especially the heading offset) can lead to large errors in the beacon displacement. These errors are more serious for those observations in the window with the largest time offset from the required time. Large time windows may also produce "over-smoothed" or "lagging" results. It is assumed that the values ​​of the hidden state parameters do not change within the time window. This assumption becomes problematic as the duration of the time window increases. On the contrary, a time window that is too small (1 second to 2 seconds) will produce results that are too "noisy" or "jumpy". There is a sweet spot in the duration of the time window, which enables a large number of Bluetooth observations to be used to effectively determine the hidden state and produce a highly accurate position.

[0085] In some embodiments, the window size may be changed dynamically depending on a determined state of the device (eg, at rest, moving relatively slowly, moving relatively quickly, etc.), as determined, for example, from accelerometer or other data.

[0086] In an embodiment, different duration windows are used to estimate hidden state parameters independently of the position calculation.

[0087] In the IPS embodiments described previously, a common time window was used to evaluate the variables: position, path loss index, heading offset, etc. This is not necessarily the case. In fact, using a different duration window for each variable may achieve better results. It may be beneficial to use a longer time window when estimating the hidden state and a shorter time window when evaluating the position. The window duration may be different for each hidden variable. A relatively large time window may be used to evaluate the step size to ensure that a complete series of steps is captured within the window.

[0088] In an embodiment, different hidden state parameters are estimated independently of each other and independently of the position calculation using time windows to which the different hidden state parameters themselves are tuned or dynamically adjusted.

[0089] Positioning is most sensitive to heading deviation, so it is advantageous to evaluate this parameter most frequently (about every 2 seconds if you have regular footsteps). Changes in device orientation will affect heading deviation, so it is important to re-evaluate device orientation regularly.

[0090] In most indoor environments, the path loss index usually changes relatively slowly. However, if, for example, the device is placed in a bag, the path loss index can change significantly. However, in general, positioning is less sensitive to the path loss index than changes in the heading offset. Therefore, a longer evaluation interval is suitable for the path loss index. (Evaluated approximately every 4 seconds regardless of footsteps).

[0091] The step size is an important input to the calculation of the beacon shift, but not as important as the heading offset. Therefore, this parameter can be updated at intervals between the heading offset interval and the path loss exponent (approximately every 3 seconds if there is a regular step).

[0092] Position and hidden state estimates do not need to be updated at regular intervals. Instead, the estimates can be triggered dynamically based on one or more criteria for each variable. For example, a certain number of new observations can be obtained or a certain number of new steps can be detected.

[0093] According to another aspect of the present invention, there is provided a method for estimating hidden state parameters associated with dynamics of a device of a mobile environment, the method comprising:

[0094] receiving a first set of observations obtained between the device and a plurality of distributed anchors at different times, wherein the anchors have known positions in the environment and the observations are obtained by a first set of one or more sensors;

[0095] defining a time window for a desired time during which the position of the device is to be estimated;

[0096] For each observation obtained at a time point within the time window:

[0097] estimating the distance and / or angle from the device to the anchor based on the observations;

[0098] estimating a displacement of the device due to movement of the device between the time the observation was obtained and the desired time, wherein the displacement is estimated based at least in part on the observations obtained by the second set of one or more sensors,

[0099] wherein at least one model having at least one hidden state parameter is used for estimating the distance and / or angle or position of the device relative to the anchor and / or for estimating the displacement of the device; and

[0100] Adjusting the position of the anchor involved in the observations by displacement to compensate for the effects of the movement of the device;

[0101] calculating a temporary position of the device at a desired time based on the distance and / or angle and the adjusted anchor position;

[0102] finding the difference between the expected distance or observation and the measured distance or observation based on the temporary position of the device and the adjusted anchor position; and

[0103] In the optimizer, at least one hidden state parameter is adjusted to minimize the difference, thereby obtaining an optimized hidden state parameter.

[0104] The method may then calculate the location of the device, for example, based on the optimized hidden state parameters and the observations. For example, the estimated distances and / or angles may be used with triangulation or trilateration techniques to determine the location of the device. In other embodiments, the model may calculate the location directly based on the observations without calculating intermediate distances and angles.

[0105] In one aspect, the invention extends to a computer program for carrying out the method described above.

[0106] In another aspect, the invention extends to a mobile device arranged to carry out the above method, the mobile device comprising a processing device, a memory, a first set of sensors and a second set of sensors.

[0107] In another aspect, the invention extends to a system arranged to carry out the above method, the system comprising a mobile device, a plurality of anchors, a processing device.

[0108] In another aspect, the present invention provides a computer-implemented method for estimating a position of a device in an environment, the method comprising:

[0109] obtaining a first set of observations at a plurality of time points over a period of time, wherein the observations alone or in combination with other observations indicate a relative position of the device in the environment;

[0110] estimating displacement of the device due to movement of the device at points in time during the time period based on the second set of observations;

[0111] Using the estimated displacement to adjust the first set of observations so that each observation occurs at a single time for the device; and

[0112] The location of the device at a single time is estimated based on the adjusted observations.

[0113] It should be understood that any feature expressed herein as provided "in one example" or "in an embodiment" or as "preferred" may be provided in combination with any one or more other such features and any one or more of the various aspects of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0114] Embodiments of the present invention will now be described by way of example with reference to the accompanying drawings, in which:

[0115] Figures 1 to 3 An example of a positioning system for estimating a position of a mobile device in an environment according to an embodiment of the present invention is shown;

[0116] Figure 4 An example showing movement of a mobile device within an environment and adjustments to beacon positions at each time period according to an embodiment of the present invention; and

[0117] Figure 5a to Figure 5e The adjustment of the beacon position is shown in more detail;

[0118] Figure 6 An example of a flow chart illustrating steps taken to locate a mobile device according to an embodiment of the present invention;

[0119] Figure 7 An example of a flow chart illustrating steps taken to estimate hidden variables of a system model according to an embodiment of the present invention; and

[0120] Figure 8 Shows that Figure 7 An example of optimizing hidden variables using the process shown. DETAILED DESCRIPTION

[0121] System Diagram

[0122] Figures 1 to 3 An example of a positioning system according to an embodiment of the present invention is shown. In general, the system 10 includes a plurality of basic elements (same reference numerals indicate the same elements), including a mobile object 20 to be positioned, an anchor point 15 with a known position in the environment, and a plurality of sensors or measurement capabilities 22, 24.

[0123] As time passes, an estimate of the distance between the mobile object 20 and the anchor point 15 is obtained, as well as the time of the observation 30. Many techniques for obtaining these measurements can potentially be used with the present invention. For example, a signal can be emitted from the anchor point and detected on the mobile object or vice versa, or a sensor located external to both the anchor point and the mobile object can be used to estimate the distance.

[0124] In addition to the distance to the anchor point, the method requires observations of the displacement of the moving object over time 32. Again, different methods can be used to obtain these measurements. For example, sensors on the object can be responsible for collecting these observations, but the invention is not limited to this case. Generally, the sensors used to estimate the displacement of the device are different from the sensors used to estimate the distance between the moving object and the anchor point, and these readings are both used (i.e., "fused") to make the estimate. Generally, a combination of sensor observations of anchor points in the environment and onboard sensor observations of the device's movement will be preferred.

[0125] The software 34 may estimate the position anywhere where distance or sensor observations are brought together with displacement information (e.g., through an appropriate communication network). The software 34 may be software 34 located on the device or software 34 located external to the device (e.g., a local or remote server).

[0126] Figure 1 A specific example is shown in which a sensor 22 on a mobile object 20 can detect signals emitted by a plurality of anchors 15, thereby providing a series of observations 30. The device 20 also includes a sensor 24 that detects displacement of the device, thereby providing further observations. The device has a memory and a processing unit 26 running software 34 for processing the observations and calculating the position.

[0127] Figure 2 Show Figure 1 A variation of the system 10 shown. In this example, there is an external server 50 in the cloud in this example, and two-way communication is provided between the server 50 and the device 20 via the device's communication interface 28 and the network 40. In this example, the observations 30, 32 can be transmitted to the server, and the software 34 running on the server 50 can calculate the device position from outside the device 20.

[0128] Figure 3 Another variation is shown. In this case, the mobile device 20 emits a signal which is detected at the anchor 15, which then sends the observations 30 to the server 50 via the network 40. A separate sensor 24 located on the device 20 measures the relative displacement 32, and these observations 32 are sent to the server 50 from the software 34 running on the device 20 via the network 40. The position can then be calculated by the software 34 running on the server 50.

[0129] Other arrangements and sensor types may also obtain and process observations and displacement data, and the present invention is not limited to any particular arrangement of these elements.

[0130] Observation Alignment

[0131] The specific technique utilized herein superimposes observations obtained at different times at the desired time, aligning them in time and thus compensating for the motion of the device in position, and then using these superimposed observations to calculate the position of the device. A simple example is shown by Figure 4 . The IPS system consists of two main elements: a mobile device and transmitters 15 (shown by dots) mounted at known locations around the environment. In this example, the transmitters are Bluetooth beacons, and the mobile device contains a Bluetooth chip that can scan for Bluetooth signals. The device also contains an inertial measurement unit (IMU), which uses a combination of accelerometers, gyroscopes, and magnetometers (sometimes) to measure and report the device's specific forces, angular rates, and orientation of the body (sometimes), from which the device's displacement, i.e., the distance moved and the direction of travel, can be calculated. However, it should be understood that many different sensor schemes can be used to obtain these observations.

[0132] The device continuously scans for observations from transmitters 15 in the environment. Generally, the device operating system will determine when an observation is obtained and provide the observation to the software. The device stores Bluetooth signal strength (RSSI) observations and the time of the observation. These observations are converted to estimated distances, for example using the standard attenuation formula (Equation 1).

[0133] Accelerometer and gyroscope observations are processed and stored as position displacements (eg, in terms of direction and magnitude) and the time of the observation.

[0134] Mobile device 20 moves between different locations within the environment at time points A, B, and C. When device 20 is at time point B, it records a first set of Bluetooth observations from beacons. When the device is at time point C, it records a second set of Bluetooth observations from these beacons.

[0135] Next, the Bluetooth observations captured at time point B are mapped to the reference frame of time point C by estimating the displacement between the observations recorded by the device at time point B and the observations recorded at time point C and then translating the beacon position 110 according to this displacement, so that the observations recorded at B from the (real) beacon (real) position (shown by a dot, such as beacon 115) are equivalent to the observations at the (virtual) beacon position at C (shown by a circle, such as beacon 120).

[0136] Once these translations are applied, the device position is estimated using standard trilateration or triangulation methods, which have the primary benefit of utilizing a large number of distance measurements. For example, the MDS algorithm [7] may be used, but other algorithms may also be used. When obtaining bearing information (i.e., the relative angle between one of the device's axes and the beacon), trilateration is generally used, while when obtaining distance information (i.e., the relative distance between the device and the beacon or a proxy thereof), trilateration is used. It should be noted that the "tri-" in these terms should not be understood to imply that only three observations are used in the calculations, but rather that any number of three or more observations may be used.

[0137] This technique converts Bluetooth observations captured within a time window to a single moment in time (in this case at C), and therefore to a single device location), by superimposing and aligning the observations at that time. This provides a method that essentially compensates for motion and eliminates timing issues, thereby simplifying the calculation of position relative to prior art techniques [5, 6]

[0138] It should be understood that this is a simple example used to illustrate the principle of the technique in which observations from a single time (B) are mapped to another time (C). In practice, sensor readings from many times may be mapped to a specific time where an estimate of position is needed.

[0139] The advantage of superimposing observations in this manner, compared to alternative fusion techniques, is that it enables more Bluetooth observations to be used to calculate the hidden state and position of the device at a particular moment. Thus, for example, if observations from 3 different beacons at 3 different times are mapped to the same point in time where the position of the device needs to be estimated, this gives 9 observations to 9 "virtual" beacons whose positions are displaced, and the 9 observations are used to calculate the position. Since the relative timing of the 9 observations has been eliminated as a factor, the position can be estimated by calculating the same treatment for each of the 9 observations. Using more observations helps overcome the noise associated with Bluetooth observations. For example, observations of a particular beacon can be used according to different device locations, so that, for example, fading effects or other distortions that have affected one observation of this beacon will not affect different observations of this beacon, because, for example, the device has moved from behind an obstacle at the same time. Therefore, when calculating the position, the impact of any one observation and the noise in this observation is reduced.

[0140] Get displacement and distance / angle data from sensor readings

[0141] exist Figure 4In the example given, Bluetooth RSSI readings are used to determine the relative distance from the mobile device to the beacon. It should be understood that many technologies (including WiFi 802.11mc, 801.11az, ultrasonic, etc.) can be used to determine the distance from the mobile device to the anchor. Different types of anchors can be used, while using different distance determination techniques. Likewise, in other examples, the angle between the mobile device and the anchor is sensed, for example, using Bluetooth arrival or departure angles. In other examples, the mobile device can transmit a signal and the anchor can receive the signal. Similarly, many types of sensors can be used to obtain device displacement data.

[0142] It will be appreciated that various processing may be required to convert sensor readings into appropriate distances. This will depend greatly on the types of sensors used, whether they are located on a mobile device, anchor or other location, and how accurate they are in a particular environment. Figure 4 In the example shown, the RSSI measurement from the beacon is converted to distance using the standard attenuation formula (Equation 1). In time of flight measurements, a different model can be used.

[0143] Similarly, when "dead reckoning" is performed to determine the displacement of a device, various processing may be required to convert internal sensor readings into displacement data. For example, the device may have a compass or gyroscope that gives an orientation reading and measures the rotation of the wheels to give an indication of distance traveled, which may be combined to give a displacement vector for the device.

[0144] In some cases, the sensor data may give accurate displacement and distance / angle information. In other instances, it may be necessary to combine the sensor data with various parameters of the physical system that enable the sensor data to be converted to a suitable reference frame (i.e., convert RSSI to distance) and convert gyroscope and wheel rotation data to displacement with the same units.

[0145] This requires initial and / or ongoing estimation of one or more parameters to convert sensor readings into accurate displacement and distance / angle data. For example, when using the standard attenuation formula (Equation 1), path loss, transmitter strength, and receiver sensitivity need to be measured. When monitoring wheel rotation, the circumference of the wheel is needed to convert the rotation into distance for displacement calculation. In some instances, such as based on prior knowledge of sensor type or environment or other system parameters or using an initial calibration step, it can be a simple default value. This may be suitable for relatively static values, but in other instances, continuous dynamic estimation of parameters is required to give accurate results. For example, as discussed above, when using various models of pedestrian dead reckoning to calculate device displacement, accurate values ​​of step length and heading offset are required, and these hidden parameters can change dynamically. To deal with this situation, the following is an example of superimposing observations obtained at different times to compensate for device movement (in a similar manner as described above for finding position) to estimate the hidden parameters of the model used to convert sensor observations into displacement data.

[0146] In the angle of arrival / departure scheme, the distance to the beacon is not required, and therefore there is no need to convert RSSI observations into distance information as in the previous example. In the case where the mobile device measures angles, it may instead be necessary to track the orientation of the device relative to the beacon's coordinate system to account for any rotation of the device between observations. In the case where a fixed beacon detects the angle or arrival / departure of the mobile device's signal, this need not be considered.

[0147] Position estimation process

[0148] Figure 5 and Figure 6 A detailed example of using such observation result superposition technology to estimate the position of a mobile device in an indoor positioning system (IPS) is shown. Figure 4 As shown in the example of , the IPS system includes Bluetooth beacons located at fixed locations around the environment, and the mobile device includes a Bluetooth chip that can scan Bluetooth signals. The device also includes an accelerometer and a gyroscope to sense the displacement of the device.

[0149] This system uses a model with multiple hidden state variables. The Bluetooth chip on the phone reports received signal strength (RSSI) values ​​based on the observed beacons. These signal strengths must be converted into estimated distances. This can be achieved using the following standard attenuation model:

[0150]

[0151] Where p is the path loss exponent, TX is the transmit power of the beacon, and RX is the receiver sensitivity. In general, at least some of the parameters of this model are unknown. The path loss exponent and receiver sensitivity are typically unknown and vary with the environment, between phones, and over time. The beacon transmit power is typically specified by the manufacturer, but even this parameter can vary over time, for example as the battery powering the beacon is discharged.

[0152] The onboard accelerometers measure the force on the device in each of 3 orthogonal directions, and the gyroscopes measure the relative orientation of the device. In theory, accurate position displacement should be available based on these sensor measurements alone. Various "pedestrian dead reckoning" (PDR) techniques have been attempted in the prior art. However, the mass-produced chips in modern smartphones are not accurate enough and measurement errors increase over time.

[0153] The approach utilized in this example is to detect footsteps from accelerometer data (which are relatively simple to detect from the repetitive pattern of accelerations resulting from a person's gait) and fuse these footsteps with step length and absolute heading derived from relative heading measurements from the gyroscope and heading offsets between the heading measurements and the absolute axis defined by a map or site plan. Step length and heading offset can therefore be considered hidden states of the system.

[0154] Thus, in this example, there are four hidden variables that can vary in space and time: path loss exponent, RX sensitivity, heading offset, and step size. In this example, we assume that the TX power of the beacon is known since it is specified by the manufacturer.

[0155] Other models and parameters are possible. In fact, the parameters needed to calculate the distance from the observations may not represent any physical quantity, but are generally just the parameters needed to transform from the observations to the distance.

[0156] Parameterizing the hidden variables using a model enables calculation of expected values ​​of observables such as RSSI from a beacon signal or its corresponding distance, and this provides a method for evaluating the hidden state.

[0157] In this example, the inputs are Bluetooth observations and footstep data. The hidden state is estimated and finally the device location is calculated.

[0158] enter:

[0159] Bluetooth observation results

[0160] ●Steps

[0161] Hidden state:

[0162] ●Deviation in the forward direction

[0163] Step length

[0164] ●Path loss index

[0165] RX sensitivity

[0166] Output:

[0167] ●Position (XY)

[0168] Method 600 begins at block 610 where initial values ​​for hidden state parameters are determined. These initial values ​​may be simple default values, or otherwise obtained in any manner. In one example, initially only Bluetooth RSSI observations are used to obtain estimates of device location, which can then be fed into the model to obtain initial estimates of hidden state variables. As discussed below, these estimates are preferably refined as the process continues.

[0169] At blocks 620 and 630, when Bluetooth observations including RSSI values ​​and footstep observations including footstep events and relative headings and their timestamps are reported, these observations and their timestamps are added to in-memory data structures. These data structures can be easily queried and data windows can be extracted between the start time and the end time. Figure 5a to Figure 5e A series of Bluetooth observations and footstep observations are shown as the device moves throughout the environment and the transformations performed to align the Bluetooth observations at time T. Figure 5c A plurality of footstep data points ST1 to ST6 are shown, each including a time (from accelerometer data detecting a new footstep) and a heading direction (from gyroscope data). Figure 5a shows the Bluetooth observation results rA1, rB1, rC1 of beacons A, B and C obtained at time T1, and Figure 5b Some further observations of these beacons, obtained at time T2, are shown. Each beacon has a known position in the environment - (Xa, Ya), (Xb, Yb), (Xc, Yc), respectively.

[0170] At block 635, one or more triggers are triggered at regular intervals or otherwise to evaluate the hidden state value based on the input. Various techniques may be used to perform this operation. Figure 7 Preferred techniques utilizing the "observation alignment" techniques disclosed herein are described.

[0171] At block 645, it is determined that a new device location should be calculated for time T. A time window is defined relative to time T. In this case, the time window is 15 seconds before T and 15 seconds after T. A memory structure is queried to obtain the relevant RSSI observations and footstep data for this time period. It is determined that footsteps ST2 to ST5 and the Bluetooth observations at T1 and T2 are all within this time window.

[0172] First, at block 650, for each RSSI observation in sequence, the footstep data and the current values ​​of the hidden parameters step size and heading offset are used to calculate the displacement (d1, d2) of the device between the time the observation was obtained (at time T1, T2) and the time T required for the position (block 660). Since the observation times (T1, T2) of the Bluetooth signal are generally not aligned with the times of the position displacements (ST1 to ST6), interpolation is used when necessary. Calculating these displacements does not require knowing the absolute position of the device, but only the relative vector between two times (T and T1; T and T2, etc.). This displacement is then applied to the Bluetooth beacon position to obtain the position of the virtual beacon (for example, using the virtual displacement position Xa+d1x, Ya+d1y, etc.). Figure 5d (A1, B1, C1; A2, B2, C2 in ) (at block 665). Thus, the size of the translation applied to the beacon will depend on the distance the device moved between the time of the Bluetooth observation and the desired time T of the location.

[0173] A time window may include multiple Bluetooth observations from the same beacon and / or different beacons with different observation times. In general, a device may be constantly moving, so a different translation needs to be calculated for each individual observation.

[0174] In practice, it is convenient to solve for the position displacement (dx, dy) derived from the accelerometer and gyroscope sensor data along two orthogonal axes (i.e., the X component and the Y component). Storing the accumulated values ​​of the X position displacement and the Y position displacement with timestamps in chronological order allows efficient calculation of the translation between any two times. This is a function of the current values ​​of the heading offset and step size in the hidden parameters and the footstep (and heading) observations.

[0175] For each RSSI observation, the distance is calculated using the path loss model shown above and the associated hidden state parameters (i.e., path loss index and RX sensitivity). Figure 5eAs shown, this produces a plurality of data points including distance and adjusted beacon position at time T. The translation of the beacon position of each signal strength measurement value in the time window substantially compensates for the effect of device movement. Once these translations are applied, at block 670, the device position is estimated using a standard trilateration method or triangulation method, the main benefit of which is the use of a large number of distance measurements. For example, an MDS algorithm may be used.

[0176] Table 1 shows the Bluetooth observation results in memory

[0177] time Detected beacons Beacon location RSSI of beacon t1 A Xa,Ya rA1 t1 B Xb,Yb rB1 t1 C Xc,Yc rC1 t2 A Xa,Ya rA2 t2 B Xb,Yb rB2 t2 C Xc,Yc rC2

[0178] Table 2 shows the adjusted beacon positions at time T

[0179]

[0180] Where d1x is the x component and d1y is the y component of the displacement d1 of the device between time T1 and time T, and where d2x is the x component and d2y is the y component of the displacement d2 of the device between time T2 and time T. Fn in this example is according to Equation 1 above.

[0181] Finally, at block 680, the estimated device position is mapped to a useful reference frame in the building and used, for example, for display or to trigger some further action based on the position.

[0182] The method is then repeated.

[0183] Hidden State Estimation

[0184] exist Figure 6 At block 640, an "observation alignment" technique may be utilized to estimate hidden states associated with the sensor mechanism and the system dynamics mechanism. A more accurate estimate of the hidden state enables a more accurate device position to be calculated.

[0185] Figure 7 An example of an iterative process 700 for finding estimates of hidden state parameters is shown. The same process is utilized for each parameter.

[0186] First, a data window 705, 715 is extracted from the Bluetooth and footstep memory data sets at a specific desired time. At block 720, the beacon displacement 720 of each of the Bluetooth observations in the window is calculated using the current value (or initial default value) 710 of the hidden state and the footstep data window 705. This essentially superimposes the Bluetooth observations 715 to compensate for the motion of the device so that a new device position can be calculated using, for example, the MDS algorithm [7], although other algorithms may also be used.

[0187] For example, the distance between the displaced beacon location and the new device location (i.e., expected distance) can be easily calculated using basic trigonometry. Based on these expected distances and the path loss model and the current values ​​of the hidden state variables, expected RSSI signal strength values ​​730 are calculated to be compared with observed values ​​740 for use in calculating error metrics 750. In another example, the expected distance is compared to the observed distance by converting the observed RSSI value 715 into an observed distance value 740 using the path loss model (i.e., the comparison is made in physical space rather than signal space since the error metric generally does not require any specific units).

[0188] In general, sensor readings are affected by noise, which means that the calculated distance will contain some error and the estimated position will be a best fit to the data rather than a perfect fit. In other words, some residual error or strain will remain in the calculated position. The error metric is an indicator of this residual error, i.e., the error metric can be the average difference between the estimated and observed values, or a mean squared error function, etc. The goal is to continually adjust the parameters to minimize this residual error.

[0189] The optimizer iteratively changes the parameter in question (path from block 750 to block 710) until the error metric is minimized and the convergence criteria are met, at which point the process ends 760. For example, a numerical optimizer such as the BFGS algorithm or gradient descent may be utilized. Figure 8 An example of using gradient descent to change the step size parameter 810 until an optimal value is obtained is shown. In the first iteration, the error value between the expected RSSI value and the observed RSSI value is first calculated 820 using the existing value of the step size at point 830. In the second iteration, a new step size value is selected using the gradient descent algorithm and the error metric is calculated repeatedly. Finally, after four iterations, the error metric convergence is determined 840 according to a predetermined criterion and the step size value is used for this period of time.

[0190] Similar optimizations may be performed for other parameter values. For example, the heading offset parameter, when varied, will change the displacement applied to the beacon position at block 720, and thus will affect the estimated position of the device, which in turn will produce a different expected RSSI value at block 730. Similarly, the RX sensitivity parameter will affect the expected RSSI value. By minimizing the error metric between the expected RSSI value and the observed RSSI value at step 750, an optimal value for the parameter value may be found.

[0191] Once the parameter value is evaluated, it is stored in memory as the new current value. The parameter value is then used as the current value input for future parameter updates and future position calculations.

[0192] As time goes by and as the device moves around, more parameter values ​​are evaluated.In some instances, it is preferred to use an average of a set of evaluations of each parameter to calculate position rather than using values ​​from any one particular time window.

[0193] according to Figure 6 At block 645 in FIG. 5 , after all parameters that need to be re-evaluated for a particular time have been calculated, the position of the device may be calculated using the most recent average parameter values.

[0194] Thus, position can be considered another hidden state variable, where each variable is iteratively adjusted to reduce the error or stress between the expected distance or observation using the adjusted parameter value and the actual observation value. Generally speaking, the position variable is the variable of interest that is output for use in a wider range of applications, but any of the hidden state variables may be used additionally or alternatively as well. For example, in some applications, the user's absolute heading may be a parameter of interest.

[0195] Evaluation time point

[0196] The evaluation of heading offset, step size and path loss exponent need not be done together. In fact, since the parameter values ​​change on different time scales, it is more computationally efficient to evaluate each parameter at different intervals. Similarly, this does not need to be done simultaneously with the position estimation.

[0197] As indicated by blocks 620 and 630, the Bluetooth observations and footstep observations are added to in-memory data structures (615, 625) as they are reported. These data structures can be easily queried and a window of data can be extracted between a start time and an end time.

[0198] Positioning is most sensitive to heading deviation, so this parameter is evaluated most frequently (about every 2 seconds if there is regular footsteps). Changes in device orientation will affect heading deviation, so it is important to re-evaluate device orientation regularly.

[0199] When navigating, the path loss index changes relatively slowly. However, if, for example, the device is placed in a bag, the path loss index can change significantly. However, in general, positioning is less sensitive to the path loss index than changes in the heading offset. Therefore, a longer evaluation interval is suitable for the path loss index. (Evaluated approximately every 4 seconds regardless of footsteps).

[0200] The step size is an important input for calculating the beacon displacement so that Bluetooth observations can be "added", but is not as important as the heading offset. Therefore, this parameter is updated at an interval between the heading offset interval and the path loss exponent (approximately every 3 seconds if there is a regular pace). If the device is stationary during each time period, there is no need to evaluate the heading offset or step size.

[0201] Generally speaking, the position estimate may be calculated most frequently, say once every 1 second.

[0202] Window size and positioning

[0203] The duration of the time window can be changed dynamically based on prevailing conditions. Increasing the size of the time window increases the number of Bluetooth observations that can be superimposed, but also potentially increases the displacement applied to the beacon, depending on how far the device moves within the window.

[0204] In the extreme case where the device remains stationary, the time window can be relatively large (30 seconds to 2 minutes), and all Bluetooth observations in this window can be used to calculate the position. Another extreme case is when someone is walking with the device at a certain speed. In order to obtain accurate results in this extreme case, a smaller time (5 seconds to 10 seconds) is preferred. This is because small errors in the hidden state (especially the heading offset) can lead to large errors in the beacon displacement. These errors are more serious for those observations in the window with the largest time offset from the time of interest. The large time window in this case may produce "over-smoothed" or "lagging" results. It is assumed that the value of the hidden state parameter does not change within the time window. As the duration of the time window increases, this assumption is more likely to be problematic. On the contrary, a time window that is too small (1 second to 2 seconds) can produce results that are too "noisy" or "jumpy". There is an optimal point in the duration of the time window, which enables a large number of Bluetooth observations to be superimposed for effectively determining the hidden state and producing an accurate position that is neither "over-smoothed" nor "lagging".

[0205] A different window size may be used for each parameter and / or position estimation. As discussed above, the window size may vary depending on the current state of device movement and / or other factors. For example, the window size may depend on the speed at which the device is moving.

[0206] The window is related in some way to the point in time for which a position estimate is needed. Typically a fixed offset relative to the point in time is used for the start and end of the window. For example, in real-time positioning, the window is typically the immediately preceding T seconds of data (where T is the length of the window), so the latest data is used. If positioning is not occurring in real time (e.g., historical data is being processed), the window may be centered on the point in time or have another offset. Typically the window will include the point in time, but it does not have to.

[0207] In some cases, it may be useful to have gaps between windows and time points. For example, if an area of ​​the environment has no sensor coverage so that observations of an anchor are unavailable for any reason, and the device moves from a first area with sensor coverage to a second area without sensor coverage, the time window of data used to estimate the position in the second area may be the last window of data available from the first area. When the device moves back to an area where observations of the anchor are available, the window may be moved forward to include the new data.

[0208] Although a detailed example of the present technology has been described with respect to an indoor positioning system that uses Bluetooth beacons to locate mobile devices such as smartphones, it can be appreciated from the above that the disclosed technology can be extended to any indoor or outdoor positioning system that utilizes various sensor technologies to determine distance / angle and displacement, including GNSS and outdoor positioning systems, robotic positioning systems for industrial environments, etc.

[0209] Embodiments of the invention have been described with particular reference to the examples shown. However, it will be appreciated that variations and modifications may be made to the described examples within the scope of the claims.

[0210] References

[0211] [1] Correa, A., Barcelo, M., Morell, A., and Vicario, JL. (2017). “A review of pedestrian indoor positioning systems for mass market applications.” Sensors, 17(8), p. 1927.

[0212] [2] Mendoza-Silva, GM, Torres-Sospedra, J., and Huerta, J. (2019). “A meta-review of indoor positioning systems.” Sensors, 19(20), p. 4507.

[0213] [3] Mendoza-Silva GM, Matey-Sanz, M., Torres-Sospedra J., and Huerta J., 2019. “BLE RSS measurements dataset for research on accurate indoor positioning.” Data, 4(1), p. 12.

[0214] [4]Faragher, R. and Harle, R., 2015. “Location fingerprinting with Bluetooth low energy beacons.” Institute of Electrical and Electronics Engineers (IEEE) journal on Selected Areas in Communications, 33(11), pp. 2418–2428.

[0215] [5] Choi, J., Choi, Y.S., and Talwar, S. (2019). “Unsupervised learning techniques for trilateration: From theory to android app implementation.” IEEE Access, 7, pp. 134525–134538.

[0216] [6] Choi Jung-sik and Choi Young-suk. 2020. “Calibration-free positioning technique using Wi-Fi ranging and built-in sensors of mobile devices.” IEEE Internet of Things Journal, 8(1), pp. 541–554.

[0217] [7] Costa, JA, Patwari, N. and Hero III, AO. 2006. “Distributed weighted-multidimensional scaling for node localization in sensor networks.” Association for Computing Machinery (ACM) Transactions on Sensor Networks (TOSN), 2(1), pp. 39–64.

[0218] Glossary of terms and trademarks

[0219] RSSI - Received Signal Strength Index

[0220] RTT - Round Trip Time

[0221] IPS-Indoor Positioning System

[0222] GNSS - Global Navigation Satellite System

[0223] GPS - Global Positioning System

[0224] BT-Bluetooth (RTM)

[0225] RX - Receiver

[0226] TX-Transmitter

[0227] WiFi - a set of wireless network protocols based on the IEEE 802.11 series of standards

[0228] RF-Radio Frequency Signal

[0229] Dialog Semiconductor (RTM)

[0230] PDR - Pacer Dead Reckoning

[0231] KF and EKF - Kalman filter and extended Kalman filter

[0232] UWB-Ultra-Wideband (RTM)

Claims

1. A computer-implemented method for estimating a position of a mobile device in an environment, characterized in that The method comprises: receiving a first set of observations obtained at different times between the device and a plurality of distributed anchors, wherein the plurality of anchors have a known plurality of locations in the environment and the observations are obtained by a first set of one or more sensors; defining a time window for a desired time during which the position of the device is to be estimated; For each observation obtained at a time point within the time window: estimating a distance and / or angle from the device to the anchor based on the observations; estimating a displacement of the device due to movement of the device between the time the observation is obtained and the desired time, wherein the displacement is estimated based at least in part on a plurality of observations obtained by a second set of one or more sensors; and adjusting the position of the anchor involved in the observations by the displacement to compensate for the effect of the movement of the device; and The position of the device at the desired time is calculated based on the distance and / or the angle and the adjusted anchor position.

2. The method according to claim 1, characterized in that The adjusted position is calculated using geometric techniques.

3. The method according to claim 1 or 2, characterized in that The position is calculated using a multidimensional scaling algorithm.

4. A method according to any preceding claim, characterised in that The first set of sensors detects the strength, time of flight, phase, angle, or arrival or departure of wireless signals transmitted by the plurality of anchors and detected by the device and / or transmitted by the device and detected by the plurality of anchors.

5. A method according to any preceding claim, characterised in that The second set of sensors includes sensors located on the device and configured to detect motion of the device within the environment.

6. The method according to any one of claims 1 to 5, characterized in that The position is calculated using trilateration or triangulation.

7. A method as claimed in any preceding claim, characterised in that At least one of the following: i) estimating the distance and / or the angle ii) said estimating said displacement of said device, and iii) estimating the position of the device based on a plurality of observations is based on a model with at least one hidden state parameter.

8. The method according to claim 7, characterized in that The method includes estimating the hidden state parameters using an optimization technique that minimizes a difference between expected and observed values ​​of the distances to the plurality of anchors or a difference between the expected and actual observed values.

9. The method according to claim 8, characterized in that Optimizations include: i) finding a temporary estimated position of the device using the current plurality of hidden state parameters according to the method of claim 1; ii) comparing the provisional estimated position of the device with the adjusted beacon position to obtain an expected range value or an observed value; iii) calculating the combined difference or the average difference and determining whether the convergence criteria are met; and, iv) if the criterion is not met, adjusting at least one hidden parameter and repeating steps i) to iii) until the criterion is met, and if the criterion is met, using the adjusted parameter value as the new parameter value in future parameter and / or position estimates.

10. The method according to any one of claims 7 to 9, characterized in that The plurality of hidden state parameters used to estimate the displacement of the device include one or more of: Step size, starting position or starting heading, heading offset, and offset drift.

11. The method according to any one of claims 7 to 10, characterized in that The plurality of hidden state parameters used to determine the distances to the plurality of observed anchors include one or more of: Transmit power, path loss, and receive sensitivity.

12. A method according to any preceding claim, characterised in that The time window used to estimate the position and / or hidden state is tuned or dynamically adjusted in duration or offset.

13. The method according to claims 7 to 12, characterized in that Hidden state parameters are estimated using different duration windows independently of the position calculation.

14. The method according to any one of claims 7 to 13, characterized in that The different hidden state parameters are estimated independently of each other and independently of the position calculation using their own tuned or dynamically adjusted time windows.

15. The method according to any one of claims 7 to 14, characterized in that The calculated hidden state values ​​are averaged and used in the position calculation.

16. A method of estimating hidden state variables associated with the dynamics of a device moving in an environment, characterized in that The method comprises: receiving a first set of observations obtained at different times between the device and a plurality of distributed anchors, wherein the plurality of anchors have a known plurality of locations in the environment and the observations are obtained by a first set of one or more sensors; defining a time window for a desired time during which the position of the device is to be estimated; For each observation obtained at a time point within the time window: estimating a distance and / or angle from the device to the anchor based on the observations; estimating a displacement of the device due to movement of the device between the time the observation was obtained and the desired time, wherein the displacement is estimated based at least in part on a plurality of observations obtained by a second set of one or more sensors, wherein at least one model having at least one hidden state parameter is used for estimating the distance and / or the angle or the position of the device relative to the plurality of anchors and / or for estimating the displacement of the device; and adjusting the position of the anchor involved in the observations by the displacement to compensate for the effect of the movement of the device; calculating a temporary position of the device at the desired time based on the distance and / or the angle and the adjusted anchor position; finding the difference between an expected distance or observation and a measured distance or observation based on the temporary position of the device and the adjusted anchor position; and In the optimizer, at least one hidden state parameter is adjusted to minimize the difference, thereby obtaining an optimized hidden state parameter.

17. A computer program, characterized in that For carrying out the method according to any one of claims 1 to 16.

18. A mobile device, characterized in that: Comprising a processing device, a memory, a first set of sensors and a second set of sensors, the mobile device is arranged to perform the method of any one of claims 1 to 16.

19. A system, characterized in that: Comprising a mobile device, a plurality of anchors, and a processing device, the system is arranged to perform a method as claimed in any preceding claim.

20. A computer-implemented method for estimating a position of a device in an environment, characterized in that The method comprises: obtaining a first set of observations at a plurality of time points within a time period, wherein the plurality of observations alone or in combination with other observations indicate a relative position of the device in the environment; estimating displacement of the device due to movement of the device at the plurality of time points during the time period based on the second set of observations; adjusting the first set of observations using the estimated plurality of displacements so that each observation occurs at a single time for the device; and The position of the device at the single time is estimated based on the adjusted observations.