System and method for positioning
The method addresses the inaccuracies and robustness issues of existing positioning technologies by using a time window to fuse distance and displacement measurements, resulting in accurate and robust position estimates in complex environments.
Patent Information
- Application Number
- JP2024571323
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-10
- Filing Date
- 2023-05-17
- Publication Date
- 2025-06-26
AI Technical Summary
Existing positioning technologies, such as those using Extended Kalman Filters, can result in positions that rapidly deviate from reality in complex real-world deployments, and they often require cumbersome database construction and are not robust in changing environments.
A computer-implemented method that estimates the position of a movable device by receiving observations from distributed anchors, defining a time window, estimating distances and angles, adjusting anchor positions for displacement, and calculating the device's position using these adjusted values.
This method provides accurate and robust position estimates even in noisy and changing environments, simplifying installation and avoiding the calibration overhead of traditional fingerprinting techniques.
Smart Images

Figure 2025519411000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to systems and methods for positioning devices or objects. Certain embodiments relate to any distance or angle-based positioning technology for mobile devices. This may be, for example, indoor positioning using mobile device sensing technologies such as Bluetooth Low Energy beacons, or outdoor positioning using, for example, GNSS or eLoran.
Background Art
[0002] Current and future wireless applications rely heavily on accurate real-time positioning. Many applications, such as smart cities, Internet of Things (IoT), medical services, the automotive industry, underwater surveys, public safety, and military systems, require reliable and accurate positioning technology.
[0003] Positioning systems generally require sensors to 1) measure the movement of objects in the environment or 2) measure some properties or characteristics of the environment for contextual cues that help with position estimation.
[0004] An example of the first technique is an odometer on the wheels of a vehicle that provides information about the movement of the vehicle, which is combined with direction information from a compass or magnetometer to construct a motion vector relative to the starting point, from which a new position can be calculated. This is sometimes described as "dead reckoning."
[0005] In the second technique, there are roughly two types of information regarding the environment that helps with positioning. The first is of a geometric nature. In a simple example, this can involve finding the distance or angle from sensor data to an anchor at a known position within the environment, such as a Bluetooth or other RF (radio frequency) beacon. This information can be used, in a simple example, in trilateration or triangulation to calculate the position. In the case of complex GNSS positioning such as GPS, the device acquires distance information to satellites with known positions, and the position of the satellites is always available to the device so that mathematical techniques can be used on the distances to the satellite positions to calculate the device position in the GNSS coordinate system.
[0006] The second type of information is of a non - geometric nature. Instead, a unique set of information that can be detected from each part of the environment is used to identify each position within the environment. An example is a warehouse robot identifying unique barcodes corresponding to positions within the environment. There are more advanced techniques such as RF (radio frequency) fingerprinting. This technique relies on first capturing a set of radio frequency signals observed at each position within the environment and generating a lookup database that maps the signals across the environment, which is later used to position a device capable of measuring radio frequency signals. These techniques can yield good results in ideal situations. However, the construction of these lookup databases is cumbersome, and the time to build them increases as the size of the environment grows. Also, they are not very robust, i.e., they are easily affected by settings and have difficulty operating in changing environments and with different devices.
[0007] In both geometric and non-geometric positioning, there can be any number of on-board or external sensors that measure the relative or absolute movement patterns of objects, as well as sensors that measure the environment. In these cases, it is advantageous to combine or fuse multiple data sources. The main advantage is the improvement in position accuracy. The position fused from multiple sensors is more accurate because it balances the advantages and disadvantages of different sensors and the position errors from different sources are mostly uncorrelated.
[0008] Known methods for combining data from two or more sensors include Kalman filters and particle filters. A Kalman filter recursively estimates the variables of a model (e.g., the physical laws describing the movement of a vehicle) from the input from observable sensors and the hidden state of the system. To update the model variables, the state estimate from the previous time step is used together with new observations. A particle filter performs positioning using a Monte Carlo type approach. This technique uses a set of particles to propagate incomplete knowledge through a dynamic model. Each particle represents the weight of a specific starting position or the error of the input due to measurement noise. Each posterior distribution obtained from the results of all particles represents the error of the calculated model variables such as position.
[0009] Due to its computational efficiency and minimal operating conditions, the Kalman filter has become the de facto standard method for sensor fusion problems in fields such as robotics. However, a vanilla Kalman filter makes several assumptions about the system dynamics and measurements. First, the state dynamics are linear with respect to time. Second, the noise of the state dynamics is normally distributed. Third, the observations are a linear function of the state. For example, the rotational speed of a wheel controlling a lift pulley system is a linear function of the lift height. Fourth, the observation noise is normally distributed.
[0010] In many real-world applications, some or all of these assumptions do not hold. The dynamics of control systems are usually non-linear, and sensor responses are often non-linear as well. In general, sensors can intermittently report outliers or anomalous data points that make the noise distribution of the observed values asymmetric. Another complicating issue is that it can be difficult to model all aspects of the dynamics. Any unmodeled dynamics are captured as noise and may have non-Gaussian components.
[0011] The Extended Kalman Filter (EKF) was developed for non-linear systems that can be linearized around a point using a Taylor series expansion. In this version of the filter, the state transition and measurement models do not have to be linear functions of the state, but they must be differentiable functions. Unlike the standard Kalman filter, the EKF is not an optimal estimator, i.e., it does not necessarily converge to minimize the residual error of the measurements. If the initial state of the system is incorrect or the model is not accurate enough, the filter can deviate from the true state.
[0012] An example of a fusion approach for indoor positioning is described in the academic paper [6] by Jeongsik Choi and Yang-Seok Choi, titled "Calibration-free positioning technique using Wi-Fi Ranging and Build-in Sensors of Mobile Devices", URL: https: / / aRXiv.org / pdf / 2003.06013.pdf. This paper describes a method for calculating the position of a device moving from fixed anchors (WiFi access points) without an initial "fingerprint" survey. These also simultaneously obtain hidden state parameters in real time, including path loss exponent, receiver sensitivity, azimuth offset, and step size. This technology consists of three parts: (i) initial calibration, (ii) self-calibration of the WiFi ranging module, and (iii) calibration of the Kalman filter-based positioning and pedestrian dead reckoning module. As a result of the initial (and self-) calibration, over a series of pedestrian steps, by iterating and looping through the set of WiFi distances observed at each step, an estimated value of the hidden state parameter is obtained. The value of the hidden state can be estimated by minimizing a cost function based on the squared difference between the estimated WiFi distance and the distance to the AP based on the estimated position at the time of the step (using gradient descent).
[0013] Therefore, the mathematical framework for obtaining the hidden state is centered around the pedestrian's steps. Once the hidden state is estimated, the device position is calculated using an extended Kalman filter.
[0014] The applicant has discovered that a drawback of this approach is that the extended Kalman filter can result in positions that rapidly deviate from reality when measurements from the device are used in complex real-world deployments such as exhibition halls.
[0015] The present invention generally aims to improve positioning technology and reduce or avoid the drawbacks of the existing schemes described above by providing a positioning scheme that is simple to install, accurate, and robust even in difficult environments.
Summary of the Invention
[0016] According to a first aspect of the present invention, there is provided a computer-implemented method for estimating the position of a movable device within an environment, the method comprising: receiving a first set of observations obtained at various times between the device and a plurality of distributed anchors, the anchors having known positions within the environment and the observations being obtained by a first set of one or more sensors; defining a time window for the time at which the position of the device needs to be estimated; for each observation obtained at a point in time within the time window, estimating the distance and / or angle from the device to the anchor from the observation; estimating the displacement of the device due to the movement of the device between the time the observation was obtained and the time needed, the displacement being estimated based at least in part on observations obtained by a second set of one or more sensors; adjusting the position of the anchor involved in the observation by the displacement to compensate for the effect of the movement of the device; calculating the position of the device at the time needed based on the distance and / or angle and the adjusted anchor position. comprises.
[0017] The present invention provides a novel method for fusing distance and displacement measurements within a time window to estimate the position of a moving object at a time needed.
[0018] However, as used herein, "positioning" is intended to encompass any scheme for determining the position of a device or object within an environment, including the "localization" technique, which is a term used in academic papers related to positioning schemes where the device itself determines its own position within the environment and, in some cases, the sensor system identifies the position of an object within the sensor field. The device may be, for example, an electronic device equipped with some or all of the sensors and / or performing some or all of the calculations, or it may be passive such that the sensors and / or calculations are performed outside the device.
[0019] This method estimates the position from the observations having times within a predetermined time window. The window may be 30 seconds (or any other arbitrary duration) prior to the time for which the position estimate is required. This may be selected when the position is calculated in real time or near real time. Alternatively, when the positioning is performed retrospectively, the window may be centered on the time for which the position estimate is required. The window typically includes the time for which the position estimate is required, but not necessarily. In principle, any offset may be used, but in most cases, it is preferred that the window be close to the time when the position estimate is needed.
[0020] The importance of using a time window to estimate the position can be seen from the example of a simpler stationary device. Calculating the position of a stationary device using only the latest distance from an anchor position, such as an RF or other wireless beacon, can result in an inadequate position because the distance may be over- and / or underestimated due to measurement noise. However, when measurements over a larger time window are used, the position is likely to be more accurate because the measurement noise can be overcome by increasing the number of measurements.
[0021] In the case of a moving device, it is not possible to expand the time window because the position of the object changes during the time window when using only the distance / angle to the anchor position.
[0022] An important innovation of this method is to calculate the required time position of the mobile device by using the stored displacement data from a second set of sensors, such as on-board inertial sensors, acceleration sensors, and gyroscope sensors, with an extended data window. The extended data window enables more accurate positioning for the same reasons as explained in the example of the stationary device. In fact, by adjusting the anchor position to compensate for the displacement of the device since the observation of the anchor, all observations are shifted to a single reference point, i.e., the time at which the position is estimated.
[0023] In other words, instead of obtaining anchor observations from a short time window where the device can be assumed to be stationary, this method makes observations over a longer time window and corrects the movement of the device by sensing displacement, for example, using inertial sensors.
[0024] Subsequently, the position calculation can use these estimated distances / angles interchangeably in the calculation, i.e., the temporal relationship of each reading is removed, so they can be processed, for example, in any order. To estimate the device position, simple trilateration or triangulation techniques can be used with the distances / angles and the adjusted anchor positions. Since the distance / angle observations inherently have a high probability of containing some errors due to noise, etc., there is no position estimate that perfectly fits all the data, and there is some residual error in the calculation. Therefore, multidimensional scaling (MDS) can be used as an appropriate technique for position estimation to handle this residual error. In particular, weighted MDS is suitable in the examples described herein.
[0025] The distance and / or angle indicates the position of the anchor relative to the device. These can be expressed in any coordinate system, such as a polar coordinate system, a Cartesian coordinate system, etc., and enable the estimation of the position of the device relative to the anchor, either alone or in combination, from an absolute perspective through knowledge of the absolute position of the anchor in a given reference frame. When the observations are converted to distance values, these are preferably in the same coordinate space as the anchor position, for example, by both being expressed in meters, which can make the calculations for estimating the position of the device simpler or more accurate. For example, a path loss model or a scaling factor for signal strength observations can be applied to convert the observations to distance. In other examples, the observations are sufficiently correlated with distance that the calculations in position estimation can act directly on the observations as distances. For example, the wMDS technique can, in principle, use signal strength values as distance values when determining the position.
[0026] Since the positions of the anchors are known, if the position of the mobile device relative to the anchor is known, it can be mapped to its absolute position in the environment. Subsequently, the method can be repeated for different points in time, for example, using a sliding window of data.
[0027] Since the anchors can have fixed positions, their positions may be known to the method in an initial configuration step, or, for example, in the case of GNSS, the anchors move and are calculated independently of the method and become available to the method at the relevant times when the observations are made. In either case, the positions of the anchors are known at the time when the observations are acquired and used for position estimation by the algorithm.
[0028] One anchor can be counted twice in the same position calculation (i.e., observations for the same anchor are acquired at different times and shifted into the same time frame). Similarly, if some anchors move in and out of range as the device moves, they may only be counted once.
[0029] By using a time window of data, this method can utilize a large number of measurements to calculate a single position. This enables the obtaining of accurate and robust position estimates even in the case of noisy measurements. It has been found that this is simpler and more robust than alternative sensor fusion approaches using a Kalman filter, while avoiding the calibration overhead associated with alternative "fingerprint" techniques.
[0030] Since anchors typically transmit at a constant frequency, using a longer time window allows for more observations of each anchor. The observations can contain both random noise and systematic noise. By using more observations, the impact of random noise is reduced. Also, this increases the number of individual anchors observed when the transmission frequency is low compared to the window. In some cases, time-varying errors may also exist. Thus, by obtaining observations at different times, the temporal diversity of the measurements is improved and these errors are reduced.
[0031] Since an anchor may be visible from some locations but not from others, using observations from different positions increases the distinct number of anchors observed in this method. Also, spatial diversity is obtained, and a "fast fading" effect may exist. For example, in the case of WiFi RTT (round-trip time), the observed distance error can vary, such as every 50 cm, in relation to the wavelength of the signal. By obtaining observations from different distances, these effects can be reduced. Or, for example, received signal strength indicator (RSSI) measurements may be affected by shadowing, which causes spatial correlation errors, and this can be reduced by spatial diversity.
[0032] In addition to position estimation, this method can be used to simultaneously calculate other unknown variables related to the dynamics of the system or parameters related to sensors and the environment. Otherwise, these variables, which are generally required for position calculation, need to be determined by other means, for example, by calibration. In fact, a large number of various parameter values are tried, and for each, a positioning algorithm (e.g., MDS) is executed to know which minimizes a certain amount of error or stress in the positioning algorithm. Thereby, the system becomes "adaptable". In practice, most of these parameters change over time.
[0033] Since this technology is distance-based, it enables the positioning of moving objects such as mobile devices without the need for environmental surveys and the creation of so-called "fingerprints". These surveys are time-consuming, device-specific, and can become invalid when the environment changes, so this is advantageous. The present invention makes it possible to construct a truly self-sufficient positioning system.
[0034] The technology described using distance can also be extended to the positioning of the angle of arrival or angle of departure.
[0035] The technology described is applicable to any positioning that uses distances or angles to known-positioned anchors. The distance can be estimated from time-of-flight (e.g., WiFi 802.11mc), phase measurement (e.g., Dialog's own WiRa extension for the Bluetooth specification), or signal strength (e.g., RSSI measurement of Bluetooth Low Energy). In principle, any ranging or angle technology may be used. This technology can also be extended to outdoor positioning using, for example, GNSS or eLoran.
[0036] In one embodiment, the transmitter is a Bluetooth beacon, and the mobile device includes a Bluetooth chip capable of scanning Bluetooth signals. The device includes an accelerometer and a gyroscope to sense displacement of the device. Thus, it is useful for modern smartphones, tablets, and other mobile computing devices generally equipped with suitable sensors.
[0037] In other embodiments, to determine the distance from the mobile device to the anchor, other RF signals such as, for example, WiFi 802.11mc, 801.11az, and other signals or waveforms that can propagate in the environment between the device and the anchor and whose characteristics can be measured to indicate distance, such as ultrasonic, radar, sonar, laser light, ultra-wideband (UWB), etc., may be used. There is nothing preventing different types of anchors using different distance determination techniques from being used simultaneously.
[0038] In other embodiments, the angle between the mobile device and the anchor is sensed using, for example, the Bluetooth angle of arrival or angle of departure.
[0039] In other embodiments, the mobile device may transmit signals and the anchors may receive them. Observations from these anchors can be used to estimate distance and / or angle, for example, by transmitting them to a server or other device that receives all the observations.
[0040] In other embodiments, the displacement of the device can be sensed in other ways using sensors either on the device or elsewhere.
[0041] In embodiments, the position can be evaluated periodically, for example, at a period of 0.5 s to 5 s.
[0042] In an embodiment, the adjusted position is calculated using geometric techniques. For example, the displacement can be decomposed into x and y components and added to the x and y coordinates of the anchor position. This is usually computationally inexpensive.
[0043] In an embodiment, a multidimensional scaling algorithm is used to calculate the position.
[0044] Preferably, the first sensor set and the second sensor set are different. The first sensor set may detect the intensity, time of flight, phase, angle of arrival or angle of departure of a wireless signal transmitted by an anchor and detected by a device and / or transmitted by a device and detected by an anchor. The wireless signal may be an electromagnetic signal including, for example, an RF signal (such as a radio wave or a microwave) like Bluetooth, radar, etc., or an optical beam including visible light, ultraviolet light, or infrared light (such as laser positioning), or a sound wave such as ultrasonic or sonar. The second sensor may include sensors on the device for detecting the movement of the device within the environment. For example, these may include inertial sensors such as, for example, accelerometers, gyroscopes, and / or magnetometers, and / or, optionally, other sensors that enable measuring the distance the device has moved in the direction (i.e., azimuth) of the device, sometimes referred to as "dead reckoning" position calculation. Depending on the application, this may be based on detecting a pedestrian's steps based on inertial measurements, or on vehicle or robot positioning using measurements of the rotation of wheels / tracks / drive systems as an addition to or an alternative to inertial measurements for estimating displacement. Thus, different types of sensors are fused in a way that takes advantage of the strengths and performance of each type of sensor.
[0045] In an embodiment, the position is calculated using trilateration or triangulation using three or more measurements.
[0046] i) Estimates of distances and / or angles, ii) Estimates of the displacement of the device, and iii) estimating the position of the device from the observed values at least one of which is a method according to any of the preceding claims, based on a model having at least one hidden state parameter.
[0047] In an embodiment, the method comprises estimating the hidden state parameter using an optimization technique that minimizes the difference between the expected value of the distance to the anchor and the observed value, or the expected observed value and the actual observed value. Typically, this is an iterative process of adjusting the parameter and checking its impact on the result until a desired convergence level or tolerance of the difference is reached.
[0048] Thus, in addition to estimating the position according to claim 1, the method can be used to estimate hidden states related to the mechanism of the sensor and the dynamics of the system. By more accurately estimating the hidden state, it becomes possible to calculate a more accurate device position.
[0049] In one embodiment of an IPS composed of a Bluetooth beacon at a fixed position and a mobile device including a sensor, there are a plurality of hidden state variables. The Bluetooth chip on the mobile phone reports the received signal strength (RSSI) value from the observed beacon. These signal strengths need to be converted to estimated distances. This can be achieved using the standard attenuation model
Number
[0050] The on-board accelerometer measures the forces acting on the device in each of three orthogonal directions, and the gyroscope measures the relative orientation of the device. In theory, it should be possible to obtain accurate position displacements from only these sensor measurements. However, mass-produced chips in current smartphones are not very accurate, and measurement errors occur over time, i.e., they are often not very suitable for this task.
[0051] A more meaningful approach is to detect steps from accelerometer data and combine each step with an orientation. Steps can be relatively easily detected from the repetitive pattern of acceleration generated from human walking. Thus, displacement data can be conveniently parameterized as orientation and steps. However, there are at least two reasons why this data is incomplete even when using this parameterization.
[0052] First, mobile compasses are inaccurate in indoor environments. The orientation reported from other sensors (e.g., gyroscopes) is with respect to an arbitrary unknown axis, which drifts over time and may be reset.
[0053] Second, there are well-known methods for identifying steps from acceleration patterns, but these usually produce inaccurate estimates of step length.
[0054] Therefore, the orientation offset between the orientation measurement and the absolute axis defined by a map or floor plan, and the step length, can be considered hidden states of the system. These hidden state variables are fused with the relative orientation data from the gyroscope and the step detection data from the accelerometer, and the displacement of the device through the environment can be plotted.
[0055] In one possible embodiment, there are four hidden variables that can change spatially and over time: the path loss exponent, the receiver (RX) sensitivity, the azimuth offset, and the step size. In this embodiment, it is assumed that the transmitter (TX) power of the beacon is known as it is specified by the manufacturer.
[0056] In other embodiments, the parameters required to calculate the distance from the observations or the displacement from the sensor readings may not represent anything physical and are generally just the parameters required for the conversion from the observations to the distance or displacement.
[0057] By parameterizing the hidden variables using a model, it is possible to calculate the predicted values of observables such as, for example, the RSSI from a beacon signal or the corresponding distance, thereby providing a method for evaluating the hidden state.
[0058] For example, by modifying the step size, the beacon translation calculated as described in claim 1 changes. This results in different estimated device positions and also changes the predicted distance to the beacon. The optimal value of the step size can be obtained by minimizing the difference between the predicted RSSI / distance and the observed RSSI / distance when the step size changes. In practice, this can be done by a numerical optimizer such as, for example, the Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm or the gradient descent algorithm.
[0059] Once the hidden state is evaluated, the method described in claim 1 can be used to calculate the final position at the required time.
[0060] Different models with different hidden parameters may be used, which is understood to depend largely on the type of sensors used and other implementation details.
[0061] In an embodiment, the optimization is i) Obtaining a provisional estimated position of the device using current hidden state parameters according to the method recited in claim 1; ii) Comparing the provisional estimated position of the device with the adjusted beacon position to obtain an expected distance value or an observed value; iii) Calculating a combined difference and determining whether a convergence criterion is met; iv) If the criterion is not met, adjusting at least one hidden parameter and repeating steps i) - iii) until the criterion is met. If the criterion is met, using the adjusted parameter value as a new parameter value for future parameters and / or position estimates. comprising.
[0062] Generally, the optimization operates over a plurality of observations within a window and needs to minimize in some average of the individual differences (e.g., RMSE) based on expected and observed values (which may be in either sensor space, i.e., RSSI values, or position space, e.g., distance) using a provisional estimate of the position. For example, a mean squared error or a similar known error function may be used.
[0063] In embodiments, the hidden state parameters used to estimate the displacement of the device include one or more of stride, start position or start orientation, orientation offset, and offset drift. Any of these can be parameters useful in modeling how sensor readings are converted into physical displacements. In the detailed examples described, stride and orientation offset are basic examples given in a pedestrian dead reckoning system. Start position or start orientation and offset drift can be used in more complex models to increase accuracy. Depending on the physical system and the model chosen to represent it, other parameters are possible.
[0064] In a further example, the hidden state parameters used to determine the observed distance to an anchor include one or more of TX power, path loss, and RX sensitivity.
[0065] In an embodiment, the time window used to estimate position and hidden state is adjusted or dynamically tuned in terms of duration or offset. The duration of the time window used to estimate position and hidden state can be modified or adjusted depending on the application. In some applications, it may be advantageous to dynamically change the duration of the time window depending on system characteristics or one or more external factors.
[0066] 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 depending on how much the device has moved within the window, the displacement applied to the beacon may also increase.
[0067] At the extreme where the device remains stationary, the time window may be relatively large (30 seconds to 2 minutes), and all Bluetooth observations within this window can be used for position calculation. The other extreme is when someone walks or runs with the device at a constant speed. For accurate results in this extreme, a shorter time (5 - 10 seconds) may be preferred. This is because small errors in the hidden state (especially the azimuth offset) can lead to large errors in the beacon displacement. These errors become more severe for observations within the window with the maximum time offset from the required time. Also, a large time window can result in "overly smooth" and "laggy" results. The value of the hidden state parameter is assumed not to change within the time window. The larger the duration of the time window, the more this assumption becomes a problem. Conversely, an extremely small time window (1 - 2 seconds) results in "noisy" or "abrupt" results. There is an optimal region for the duration of the time window that allows a significant number of Bluetooth observations to be used to effectively determine the hidden state and generate an accurate position.
[0068] In some embodiments, the window size can be dynamically changed depending on a determined device state such as, for example, during rest, moving at a relatively low speed, moving at a relatively high speed, etc., as determined from, for example, accelerometer or other data.
[0069] In an embodiment, the hidden state parameters are estimated in time windows of different durations independently of the position calculation.
[0070] In the IPS embodiments described above, variables such as position, path loss exponent, azimuth offset, etc. were evaluated using a common time window. This is not necessarily the case. In fact, it is possible to obtain better results by using time windows of different durations for each variable. It may be advantageous to use a long time window when estimating the hidden state and a short time window when estimating the position. The window duration may be different for each hidden variable. To evaluate the stride, a relatively large time window may be used to ensure that a series of complete steps are captured within the time window.
[0071] In an embodiment, different hidden state parameters are estimated independently of each other and independently of the position calculation using their own adjustment or dynamically adjusted time windows.
[0072] Since positioning is most sensitive to the azimuth offset, it is advantageous to evaluate this parameter most frequently (every ~2 seconds if there are regular steps). Changes in the orientation of the device affect the azimuth offset, so it is important to be re-evaluated periodically.
[0073] The path loss exponent typically changes relatively slowly in most indoor environments. However, for example, if the device is inside a bag, the path loss exponent can change dramatically. Nevertheless, generally positioning is less sensitive to the path loss exponent compared to changes in the azimuth offset. Therefore, a longer evaluation interval (about every 4 seconds, with or without steps) is appropriate for the path loss exponent.
[0074] Stride length is an important input for calculating beacon translation, but is less important than the azimuth offset. Therefore, this parameter can be updated at intervals between the interval of the azimuth offset and the interval of the path loss exponent (about every 3 seconds if there are regular steps).
[0075] The evaluation of the position and hidden state does not need to be updated at regular intervals. Instead, the evaluation can be dynamically triggered based on one or more criteria for each variable. For example, a specific number of new observations are available or a specific number of new steps are detected.
[0076] According to another aspect of the present invention, a method for estimating a hidden state variable related to the dynamics of a device moving in an environment is provided. This method includes: Receiving a first set of observations obtained at various times between the device and a plurality of distributed anchors, where the anchors have known positions in the environment and the observations are obtained by a first set of one or more sensors; Defining a time window for the time at which the position of the device needs to be estimated; For each observation obtained at a time point within the time window, Estimating the distance and / or angle from the device to the anchor from the observation; Estimating the displacement of the device due to the movement of the device between the time the observation is obtained and the required time, where the displacement is estimated based at least in part on observations obtained by a second set of one or more sensors; 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. To compensate for the influence of the movement of the device, adjusting the position of the anchor involved in the observation by the displacement. Based on the distance and / or angle and the adjusted anchor position, calculating a provisional position of the device at the required time. Determining the difference between the predicted distance or observation value and the measured distance or observation value from the provisional position of the device and the adjusted anchor position. In an optimizer, adjusting at least one hidden state parameter to minimize the value of the difference and obtaining an optimized hidden state parameter. Comprising.
[0077] Thereafter, the method may calculate the position of the device based on the optimized hidden state parameter and the observation value. For example, the estimated distance and / or angle may be used in triangulation or trilateration techniques to determine the position of the device. In other embodiments, the model may directly calculate the position based on the observation value without calculating intermediate distances and angles.
[0078] In an aspect, the present invention also extends to a computer program for executing the method described above.
[0079] In another aspect, the present invention also extends to a mobile device comprising a processing device, a memory, a first sensor set, and a second sensor set configured to execute the method described above.
[0080] In another aspect, the present invention also extends to a system comprising a mobile device, a plurality of anchors, and a processing device configured to execute the method described above.
[0081] In another aspect, the present invention provides a computer-implemented method for estimating the position of a device in an environment, the method comprising Obtaining a first set of observed values at a plurality of time points over a period, where the observed values, alone or in combination with other observed values, indicate the relative position of a device within an environment; Estimating the displacement of the device due to the movement of the device at time points during the period from a second set of observed values; Adjusting the first set of observed values using the estimated displacement so that each observed value for the device occurs at a single time; Estimating the position of the device at a single time based on the adjusted observed values; and comprising.
[0082] It is understood that any feature provided herein "in one example" or "in an embodiment" or expressed as "suitable" may be provided in combination with any one or more of the aspects of the present invention and any one or more other such features.
[0083] Hereinafter, embodiments of the present invention will be illustratively described with reference to the accompanying drawings.
Brief Description of the Drawings
[0084]
Figure 1-3
Figure 4
Figure 5a-e
Figure 6
Figure 7
Figure 8
Best Mode for Carrying Out the Invention
[0085] Figures 1 to 3 show examples of a positioning system according to an embodiment of the present invention. Generally, system 10 includes a plurality of basic elements including a moving object 20 to be positioned, anchor points 15 having known positions in the environment, and a plurality of sensors or measurement functions 22, 24 (similar reference numerals indicate similar elements).
[0086] Over time, an estimated value of the distance between the moving object 20 and the anchor point 15 is obtained along with the time of the observed value 30. A number of techniques for obtaining these measurements may be used with the present invention. For example, a signal may be transmitted from an anchor point and detected on the moving object, or vice versa, or sensors externally attached to both the anchor point and the moving object may be used to estimate the distance.
[0087] In addition to the distance to the anchor point, the method requires an observed value 32 of the displacement of the moving object over time. Again, various methods for obtaining these measurements may be used. For example, sensors mounted on the object may be responsible for collecting these observed values, but the present invention is not limited to this case. Generally, the sensor(s) used to estimate the displacement of the device is / are different from those used to estimate the distance between the moving object and the anchor point, and both of these readings are used in the estimation, i.e., "fused". A combination of sensor observations with respect to anchor points in the environment and on-board sensor observations of the movement of the device is preferred.
[0088] The estimation of the position can be performed by software 34 anywhere where the distance or sensor observations and displacement information are brought together, for example, via a suitable communication network. This may be software 34 on the device or software 34 external to the device (such as a local or remote server).
[0089] Figure 1 shows a specific example where a plurality of anchors 15 that transmit signals detectable by a sensor 22 mounted on a moving object 20 provide a series of observations 30. The device 20 also includes a sensor 24 that detects displacement of the device, providing additional observations. The device has any memory and processing unit 26 that executes software 34 used to process the observations and calculate the position.
[0090] Figure 2 shows a variant of the system 10 shown in Figure 1. In this example, an external server 50 exists in the cloud in this example, and two-way communication is provided between the server 50 and the device 20 via the communication interface 28 of the device and the network 40. In this example, the observations 30, 32 may be transmitted to the server, and the device position may be calculated outside the device 20 by the software 34 running on the server 50.
[0091] Figure 3 shows another variant. In this example, the mobile device 20 transmits a signal detected at an anchor 15 that transmits the observations 30 to the server 50 via the network 40. Another sensor 24 mounted on the device 20 measures the relative displacement 32, and these observations 32 are transmitted from the software 34 running on the device 20 to the server 50 via the network 40. Thereafter, the position can be calculated by the software 34 running on the server 50.
[0092] Other configurations and sensor types are possible for acquiring and processing the observations and displacement data, and the present invention is not limited to any particular calibration of these elements. Observation Alignment
[0093] The particular technology used in this specification stacks observed values obtained at different times at the times necessary to align them in time and thus in position and to compensate for the movement of the device, and these stacked observed values are used in the calculation of the position of the device. A simple example is shown by FIG. 4. The IPS system consists of two main elements: a mobile device and a transmitter 15 (indicated by dots) installed at known positions throughout the environment. In this example, the transmitter is a Bluetooth beacon and the mobile device includes a Bluetooth chip capable of scanning Bluetooth signals. The device also includes an inertial measurement unit (IMU) that measures and reports the specific forces, angular velocities, and in some cases the orientation of the body of the device using a combination of an accelerometer, a gyroscope, and in some cases a magnetometer, from which the displacement of the device, i.e., the travel distance and orientation, can be calculated. However, as will be understood, a number of different sensor schemes may be used to obtain these observed values.
[0094] The device continuously scans for observed values from transmitter 15 in the environment. Generally, the device's operating system determines when the observed values are obtained and made available to the software. The device stores the observed values of the Bluetooth signal strength (RSSI) along with the observation time. These observed values are converted to an estimated distance, for example, using the standard attenuation formula (EQ1).
[0095] The observed values of the accelerometer and gyroscope are processed and stored as position displacements (e.g., in terms of direction and magnitude) along with the observation time.
[0096] Mobile device 20 moves between different positions in the environment at times A, B, and C. When at time B, device 20 records a first set of Bluetooth observed values from the beacon. When at time C, device 20 records a second set of Bluetooth observed values from these beacons.
[0097] Next, the Bluetooth observations captured at time B estimate the displacement of the device between the observations recorded at times B and C, and then, by translating the beacon position according to this displacement by 110, it is mapped to the reference frame of time C. So, the observations recorded at B from the (actual) position (indicated by a dot, e.g., beacon 115) of the (actual) beacon are equal to the observations at C of the (virtual) beacon position (indicated by a circle, e.g., beacon 120).
[0098] When these translations are applied, standard trilateration or triangulation methods are used to estimate the device position, and the key advantage is that a large number of distance measurements are utilized. For example, the MDS algorithm [7] can be used, but other algorithms are also possible. Triangulation is generally used when bearing information, i.e., the relative angles between some axes of the device and the beacon, is obtained, and trilateration is used when distance information, i.e., the relative distance between the device and the beacon or some proxy, is obtained. As a note, the "tri-" in these terms should not be interpreted as indicating that only three observations are used in the calculation, but rather any number of three or more observations can be used.
[0099] This technique enables converting Bluetooth observations captured within a time window to a single instant (in this case C), and thus to a single device position, i.e., stacking and aligning the observations at that time. This provides a means to essentially compensate for movement and remove time from the problem, thus simplifying the calculation of the position compared to the prior art [5, 6].
[0100] It is understood that this is a simple example to illustrate the principle of the technique where observations from a single time (B) are mapped to another time (C). In reality, sensor readings from multiple times can be mapped to the specific time required to obtain an estimated position.
[0101] The advantage of stacking observed values in this way compared to alternative fusion techniques is that more Bluetooth observed values can be used to calculate the hidden state and position of a device at a particular instant. Thus, for example, if observed values from three different beacons at three different times are mapped to the same point in time required to estimate the position of a device, nine observed values are assigned to nine “virtual” beacons with displacement positions used in the calculation of the position. Each of the nine observed values can be treated identically by the calculation for estimating the position since their relative timing has been factored out. Using more observed values helps overcome the noise associated with Bluetooth observed values. For example, an observed value of a particular beacon may be used from different device positions, and for example, a fading effect or other distortion that affected one observed value of that beacon may not affect a different observed value of that beacon, for example because the device moved from behind an obstacle in the intervening time. Thus, the effect of any one observed value and the noise in that observed value is reduced in the calculation of the position. Obtaining displacement and distance / angle data from sensor readings
[0102] In the example shown in FIG. 4, Bluetooth RSSI readings were used to determine the relative distance from the mobile device to the beacon. It is understood that a number of techniques, including WiFi 802.11mc, 801.11az, Ultrasound, etc., can be used to determine the distance from the mobile device to the anchor. It is possible to use different types of anchors using different distance determination techniques simultaneously. Similarly, in other examples, the angle between the mobile device and the anchor is sensed, for example, using the Bluetooth angle of arrival or angle of departure. In other examples, the mobile device may transmit signals and the anchors may receive them. Similarly, many types of sensors can be used to obtain device displacement data.
[0103] It is understood that various processes may be required to convert sensor readings into appropriate distances. This mainly depends on the type of sensor used and how accurate these sensors are in a particular environment, regardless of whether the sensor is located on a mobile device, an anchor, or elsewhere. For example, in the example of FIG. 4, a standard attenuation formula (Eq1) is used to convert RSSI measurements from a beacon into a distance. Different models may be used for time-of-flight measurements.
[0104] Similarly, when performing "dead reckoning" to determine the displacement of a device, various processes may be required to convert internal sensor readings into displacement data. For example, the device may include a compass or gyroscope that measures wheel rotation to obtain an indication of the travel distance that can be combined to determine the displacement vector of the device.
[0105] In some examples, sensor data may provide accurate displacement and distance / angle information. In other examples, the sensor data may need to be combined with various parameters of the physical system that enable the sensor data to be converted into an appropriate reference frame, i.e., converting RSSI into distance and converting gyroscope and wheel rotation data into displacement in the same unit.
[0106] This requires initial and / or ongoing estimated values of one or more parameters in order to convert sensor readings into accurate displacement and distance / angle data. For example, when using the standard attenuation formula (Eq1), indicators of path loss, transmitter strength, and receiver sensitivity are required. When monitoring the rotation of a wheel, the circumference of the wheel is required to convert the rotation into distance for displacement calculation. In some examples, this may be a simple default value, for example based on prior knowledge of the sensor type or environment or other system parameters, or by using an initial calibration step. This can function with relatively static values, but in other examples, ongoing dynamic parameter estimated values are required to obtain accurate results. For example, as described above, when using various models for 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 address this example, an example of stacking observations taken at different times to compensate for device movement (similar to that described above in relation to finding position) is described below to estimate the hidden parameters of the model used to convert sensor observations into displacement data.
[0107] In an arrival / departure angle scheme, since the distance from the beacon is not required, there is no need to convert RSSI observations into distance information as in the previous example. If the mobile device measures the angle, instead, it may be necessary to track the orientation of the device with respect to the beacon's coordinate system to account for any rotation of the device between observations. This is not necessary when a fixed beacon detects the arrival / departure angle of the mobile device's signal. Position Estimation Process
[0108] Figures 5 and 6 show a detailed example of estimating the position of a mobile device using this observed value stacking technique in an indoor positioning system (IPS). Similar to the example of FIG. 4, the IPS system includes Bluetooth beacons at fixed positions throughout the environment, and the mobile device includes a Bluetooth chip that can scan Bluetooth signals. The device also includes an accelerometer and a gyroscope for sensing the displacement of the device.
[0109] A model with multiple hidden state variables is used in this system. The Bluetooth chip of the mobile phone reports the received signal strength (RSSI) values from the observed beacons. These signal strengths need to be converted to estimated distances. This can be achieved using the standard attenuation model
Equation
[0110] The on-board accelerometer measures the forces applied to the device in each of the three orthogonal directions, and the gyroscope measures the relative orientation of the device. In theory, it should be possible to obtain accurate position displacements from these sensor measurements alone. Various "Pedestrian Dead Reckoning" (PDR) techniques have been tried in the prior art. However, the mass-produced chips in today's smartphones do not have sufficient accuracy, and measurement errors occur over time.
[0111] The approach used in this example is to detect steps from accelerometer data, which is relatively easy to detect from the repeating patterns of acceleration generated from human walking, and fuse these with the absolute orientation derived from the step length and relative orientation measurements from the gyroscope, as well as the orientation offset between the orientation measurement and the absolute axes defined by the map or floor plan. Thus, the step length and orientation offset can be considered hidden states of the system.
[0112] Thus, in this example, there are four hidden variables that can change spatially and over time: the path loss exponent, RX sensitivity, orientation offset, and step length. In this example, the TX power of the beacon is assumed to be known since it is specified by the manufacturer.
[0113] Other models and parameters are possible. In fact, the parameters required to calculate the distance from the observations may not represent physical entities and are generally just parameters required for the conversion from the observations to the distance.
[0114] By parameterizing the hidden variables using a model, it is possible to calculate the expected values of the observations, such as the RSSI or the corresponding distance from the beacon signal, thereby providing a way to evaluate the hidden state.
[0115] In this example, the inputs are Bluetooth observations and step data. The hidden state is estimated, and finally, the device position is calculated.
[0116] Input: · Bluetooth observations · Steps Hidden state: · Orientation offset · Step length · Path loss exponent · RX sensitivity Output: · Position (XY)
[0117] Method 600 begins at 610, where initial values for the hidden state parameters are determined. These may be simple default values, or if not, can be obtained in any way. In one example, only Bluetooth RSSI observations are used initially to establish an estimated value of the device's position, and then can be supplied to the model to establish an initial estimated value of the hidden state variables. As will be described later, these estimated values are preferably refined as the process continues.
[0118] Bluetooth observations with RSSI values, step observations with step events and relative bearings, and their timestamps, when reported in blocks 620 and 630, are added to an in-memory data structure. These data structures can be easily queried, and a window of data can be extracted between a start time and an end time. Figures 5a - 5e show a series of Bluetooth observations and step observations as the device moves through the environment, and the transformations made to align the Bluetooth observations at time T. Figure 5c shows a plurality of step ST1 - ST6 data points, each with a time (since the accelerometer data detected a new step) and a bearing (from the gyroscope data). Figure 5a shows Bluetooth observations rA1, rB1, rC1 obtained at time T1 for beacons A, B, and C, and Figure 5b shows further observations for those beacons at time T2. Each beacon has a known position in the environment, which is (Xa, Ya), (Xb, Yv), (Xc, Yc) respectively.
[0119] At block 635, at regular time intervals, or when one or more triggers fire, the hidden state values are evaluated from the inputs. Various techniques can be used for this. A preferred technique uses the "observation alignment" technique disclosed herein and will be described later with respect to Figure 7.
[0120] In block 645, it is determined that a new device position should be calculated for time T. A time window is defined for 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 step data for this period. Steps ST2 to ST5, and the Bluetooth observations at T1 and T2 are determined to be within this time window.
[0121] First, in block 650, for each RSSI observation in turn, using the step data and the current values of the hidden parameters of the stride and azimuth offset, the displacement of the device (d1, d2) between the obtained observations (at times T1, T2) and the required time T for the position is calculated (block 660). In general, since the observation times (T1, T2) of the Bluetooth signal do not coincide with the times of the position displacement (ST1 to ST6), interpolation is used if necessary. It is not necessary to know the absolute position of the device to calculate these displacements, only the relative vectors between two times (T and T1; T and T2, etc.) are sufficient. Then, this displacement is applied to the Bluetooth beacon position to obtain the positions of virtual beacons (e.g., A1, B1, C1; A2, B2, C2 in FIG. 5d) with virtual displacement positions Xa + d1x, Ya + d1y, etc. (block 665). Therefore, the magnitude of the translation applied to the beacon depends on how much the device has moved between the Bluetooth observation time and the required time T for the position.
[0122] The time window can include multiple Bluetooth observations with different observation times from the same beacon and / or different beacons. In general, since the device can move continuously, it is necessary to calculate different translations for each individual observation.
[0123] In practice, it is convenient to decompose the position displacements (dx, dy) derived from accelerometer and gyroscope sensor data along two orthogonal axes (i.e., the X and Y components). By storing the cumulative values of the X and Y position displacements in chronological order along with the timestamps, the translation between any two times can be efficiently calculated. This is a function of the current values of the azimuth offset and step size in the hidden parameters, and the step (and azimuth) observations.
[0124] For each RSSI observation, the distance is calculated using the path loss model shown above and the associated hidden state parameters, namely the path loss exponent and RX sensitivity. As a result, as shown in Figure 5e, a plurality of data points with the distance and the adjusted beacon position at time T are obtained. The translation of the beacon position for each signal strength measurement within the time window basically compensates for the influence of the movement of the device. When these translations are applied, standard trilateration or triangulation methods are used to estimate the device position, and the important advantage is to utilize a large number of distance measurements at block 670. For example, the MDS algorithm can be used.
[0125] Table 1 shows the Bluetooth observations in the memory.
Table 1
[0126] Table 2 shows the adjusted beacon positions at time T.
Table 2
[0127] Finally, in block 680, the estimated device position is mapped to a useful reference frame within the building and this position is used, for example, to be displayed or to trigger some further action based on the position.
[0128] Thereafter, the method repeats. Hidden state estimation
[0129] The "observation alignment" technique can be used in block 640 of FIG. 6 to estimate hidden states related to the sensor mechanism and the system dynamics. A more accurate estimate of the hidden state enables a more accurate calculation of the device position.
[0130] An example of an iterative process 700 for obtaining an estimated value of the hidden state parameter is shown by FIG. 7. The same process is used for each parameter.
[0131] First, data windows 705, 715 are extracted from the Bluetooth and step memory data sets for a particular required time. The current value (or initial default value) 710 of the hidden state and the window 705 of step data are used in block 720 to calculate a beacon displacement 720 for each of the Bluetooth observations within the window. This basically stacks the Bluetooth observations 715 to compensate for the movement of the device so that a new device position can be calculated, for example, using the MDS algorithm [7], although other algorithms may be used.
[0132] The distance between the displacement beacon position and the new device position, i.e., the predicted distance, is calculated, which can be easily done using, for example, basic trigonometry. From these predicted distances, the path loss model, and the current values of the hidden state variables, a predicted RSSI signal strength value 730 is calculated for comparison with the observed value 740 used to calculate the error metric 750. In another example, the predicted distance is compared with the observed distance by converting the observed RSSI value 715 to an observed distance value 740 using the path loss model (i.e., since generally the error metric need not be in a specific unit, the comparison is made in physical space rather than signal space).
[0133] Generally, sensor readings are subject to noise, i.e., the calculated distance contains some error, and the estimated position is an optimal fit rather than a perfect fit to the data. In other words, some residual error or stress remains in the calculated position. The error metric is an indication of this residual error and can be, for example, the average difference between the estimated and observed values, or the mean squared error function. The goal is to continuously adjust the parameters to minimize this residual error.
[0134] The parameters in question are iteratively changed by the optimization unit (along the path of blocks 750 - 710) until the error metric is minimized and the convergence criterion is met, at which point the process ends at 760. For example, a numerical optimizer such as the Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm or gradient descent can be used. FIG. 8 shows an example of varying the step parameter 810 using gradient descent until the optimal value is obtained. In the first iteration, the existing value of the step is first used at point 830 to calculate the error value 820 between the predicted RSSI value and the observed RSSI value. In the second iteration, a new value of the step is selected using the gradient descent algorithm, and the calculation of the error metric is repeated. Finally, after four iterations, it is determined that the error metric converges 840 according to a predetermined criterion, and the value of that step is used over that period.
[0135] Similarly, other parameter values can be optimized. For example, when the azimuth offset parameter changes, the displacement applied to the beacon position in block 720 changes, affecting the estimated position of the device and resulting in different predicted RSSI values in block 730. Similarly, the RX sensitivity parameter affects the predicted RSSI value. By minimizing the error metric between the predicted RSSI value and the observed RSSI value in step 750, an optimal value of the parameter value can be obtained.
[0136] When the parameter value is evaluated, it is stored in memory as the new current value. This is then used as the current value input for future parameter updates and future position calculations.
[0137] Over time, as the device moves around, more parameter values are evaluated. In some examples, rather than using values from any one particular time window to calculate the position, it is preferable to use the average of the set of evaluations for each parameter.
[0138] After all the parameters that require re-evaluation for a particular time have been calculated, the position of the device can be calculated using the latest average parameter values, as in block 645 of FIG. 6.
[0139] Thus, the position can be considered as another hidden state variable, and each variable is iteratively adjusted to reduce the error or stress between the predicted distance and the observed value using the adjusted parameter values and the actual observations. Generally, the position variable is the object of interest output for use in a broader application, but as an addition or alternative, any of the hidden state variables can be used equivalently. For example, in some applications, the user's absolute azimuth may be the parameter of interest. Evaluation time
[0140] The evaluation of the orientation offset, step size, and path loss index does not have to occur all at the same time. In fact, since the parameter values change on different timescales, it is computationally efficient for each parameter to be evaluated at different intervals. Similarly, this does not have to occur at the same time as the position estimate.
[0141] In blocks 620 and 630, the Bluetooth observations and step observations are added to the in-memory data structures when reported (615, 625). These data structures are easily queryable, and data windows can be extracted between a start time and an end time.
[0142] Positioning is most sensitive to the orientation offset, so this parameter is evaluated most frequently (every ~2 seconds if there are regular steps). Since changes in the device's orientation affect the orientation offset, it is important to re-evaluate it periodically.
[0143] During navigation, the path loss index changes relatively slowly. However, the path loss index can change dramatically, for example, if the device is inside a bag. Still, in general, positioning is less sensitive to the path loss index than to changes in the orientation offset. Therefore, a longer evaluation interval (every ~4 seconds regardless of the presence of steps) is suitable for the path loss index.
[0144] The step size is an important input for calculating beacon displacement so that Bluetooth observations can be "stacked", but it is not as important as the orientation offset. Therefore, this parameter is updated at an interval between the interval of the orientation offset and the interval of the path loss index (every ~3 seconds if there are regular steps). If the device has been stationary for a certain period of time, there is no need to evaluate the orientation offset or the step size.
[0145] In general, the position estimate can be calculated most frequently, for example, every 1 second. Window Size and Positioning
[0146] The duration of the time window can be dynamically changed according to current conditions. Increasing the size of the time window increases the number of Bluetooth observations that can be stacked, but depending on how much the device has moved within the window, the displacement applied to the beacon may also increase.
[0147] At the extreme where the device remains stationary, the time window can be relatively large (30 seconds to 2 minutes), and all Bluetooth observations within this window can be used for position calculation. The other extreme is when someone walks with the device at a constant speed. For accurate results in this extreme, a shorter time (5 - 10 seconds) is preferred. This is because a small error in the hidden state (especially the azimuth offset) can lead to a large error in the beacon displacement. These errors become more severe for observations within a window that has a maximum time offset from the time of interest. A large time window in this case can result in "overly smooth" and "laggy" results. It is assumed that the values of the hidden state parameters do not change within the time window. The longer the duration of the time window, the more likely this assumption becomes a problem. Conversely, an extremely small time window (1 - 2 seconds) can result in "noisy" or "abrupt" results. There is an optimal range for the duration of the time window that allows a sufficient number of Bluetooth observations to be stacked to effectively determine the hidden state and generate an accurate position that is neither "overly smooth" nor "abrupt".
[0148] Different window sizes may be used for each parameter and / or for each position estimate. As described above, the window size can change according to the current state of the device's movement and other factors. For example, the window size may depend on the speed at which the device is moving.
[0149] The window is associated with the point in time when position estimation is required in some way. In many cases, fixed offsets with respect to the point in time are used for the start and end points of the window. For example, in real-time positioning, the window often consists of the data from the previous T seconds (T being the length of the window), with the latest data being used. If positioning is not done in real-time, for example when historical data is being processed, the window can be centered around the point in time or have another offset. Usually, the window includes the point in time, but this is not essential.
[0150] In some scenarios, it may be useful to have a gap between the window and the point in time. For example, if the environmental area has no sensor coverage, the anchor observations are not available for some reason, and the device moves from a first zone with sensor coverage to a second zone without sensor coverage, the time window of the data used for position estimation in the second zone may be the last data window available from the first zone. When the device returns to a zone where anchor observations are available, the window can be advanced and may include new data.
[0151] Detailed technical examples have been described in relation to an indoor positioning system that uses Bluetooth beacons to position a mobile device such as a smartphone. However, from the above, it is understood that the disclosed technology can be extended to any indoor or outdoor positioning system that uses various sensor technologies, including GNSS and outdoor positioning systems, robot positioning systems for industrial environments, etc., to determine distances / angles and displacements.
[0152] Embodiments of the present invention have been described with particular reference to the illustrated examples. However, it is understood that variations and modifications can be made to the described examples within the scope of the claims. References [1] Correa, A., Barcelo, M., Morell, A. and Vicario, J.L., 2017. A review of pedestrian indoor positioning systems for mass market applications. Sensors, 17(8), p.1927. [2] Mendoza-Silva, G.M., Torres-Sospedra, J. and Huerta, J., 2019. A meta-review of indoor positioning systems. Sensors, 19(20), p.4507. [3] Mendoza-Silva, G.M., 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. [4] Faragher, R. and Harle, R., 2015. Location fingerprinting with Bluetooth low energy beacons. IEEE journal on Selected Areas in Communications, 33(11), pp.2418-2428. [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. [6] Choi, J. and Choi, Y.S., 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. [7] Costa, J.A., Patwari, N. and Hero III, A.O., 2006. Distributed weighted-multidimensional scaling for node localization in sensor networks. ACM Transactions on Sensor Networks (TOSN), 2(1), pp.39-64. Glossary of Terms and Registered Trademarks RSSI Received Signal Strength Indicator RTT Round-Trip Time IPS Indoor Positioning System GNSS Global Navigation Satellite System GPS Global Positioning System BT Bluetooth (Registered Trademark) RX Receiver TX Transmitter WiFi Wireless Network Protocol Group Based on IEEE802.11 Standards RF Radio Frequency Signal Dialog Dialog Semiconductor (Registered Trademark) PDR Pedestrian Dead Reckoning KF and EKF Kalman Filter and Extended Kalman Filter UWB Ultra-Wideband (Registered Trademark)
Claims
**Claim 1** A computer-implemented method for estimating the position of a movable device in an environment, comprising: Receiving a first set of observations obtained at various times between the device and a plurality of distributed anchors, wherein the anchors have known positions in the environment and the observations are obtained by a first set of one or more sensors; Defining a time window for the time at which the position of the device needs to be estimated; For each observation obtained at a time point within the time window, Estimating the distance and / or angle from the device to the anchor from the observation; Estimating the displacement of the device due to the movement of the device between the time the observation was obtained and the time needed, wherein the displacement is estimated based at least in part on observations obtained by a second set of one or more sensors; Adjusting the position of the anchor involved in the observation by the displacement to compensate for the effect of the movement of the device; Calculating the position of the device at the time needed based on the distance and / or angle and the adjusted anchor position. A method comprising the above steps. **Claim 2** The method according to claim 1, wherein the adjusted position is calculated using geometric techniques. **Claim 3** The method according to claim 1 or 2, wherein a multidimensional scaling algorithm is used to calculate the position. **Claim 4** The method according to any one of claims 1 to 3, wherein the first sensor set detects the intensity, time of flight, phase, angle of arrival or angle of departure of a wireless signal transmitted by the anchor and detected by the device and / or transmitted by the device and detected by the anchor. **Claim 5** The method according to any one of claims 1 to 4, wherein the second sensor set includes sensors of the device for detecting the movement of the device in the environment. **Claim 6** The method according to any one of claims 1 to 5, wherein the position is calculated using trilateration or triangulation. **Claim 7** i) Estimated values of the distance and / or angle; ii) Estimated values of the displacement of the device; and iii) Estimating the position of the device from the observations At least one of which is the method according to any one of claims 1 to 6, based on a model having at least one hidden state parameter.
8. The method according to claim 7, comprising estimating the hidden state parameter using an optimization technique that minimizes the difference between the predicted value and the observed value of the distance to the anchor, or between the predicted observed value and the actual observed value.
9. The optimization is i) obtaining a provisional estimated position of the device using the current hidden state parameter according to the method of claim 1; ii) comparing the provisional estimated position of the device with the adjusted beacon position to obtain a predicted distance value or an observed value; iii) calculating a combined or average difference and determining whether a convergence criterion is met; 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 a new parameter value for future parameter and / or position estimation values. The method according to claim 8, comprising.
10. The method according to any one of claims 7 to 9, wherein the hidden state parameter used to estimate the displacement of the device includes one or more of a step length, a starting position or a starting orientation, an azimuth offset, and an offset drift.
11. The method according to any one of claims 7 to 10, wherein the hidden state parameter used to determine the distance to the observed anchor includes one or more of TX power, path loss, and RX sensitivity.
12. The method according to any one of claims 1 to 11, wherein the time window used to estimate the position and / or the hidden state is adjusted or dynamically adjusted in terms of duration or offset.
13. The method according to any one of claims 7 to 12, wherein the hidden state parameter is estimated in time windows of different durations independently of the position calculation.
14. The method according to any one of claims 7 to 13, wherein different hidden state parameters are estimated independently of each other and independently of the position calculation using their own adjusted or dynamically adjusted time windows.
15. The method according to any one of claims 7 to 14, wherein an average of the calculated hidden state values is obtained and used for the position calculation.
16. A method for estimating hidden state variables related to the dynamics of a device moving within an environment, receiving a first set of observations obtained at various times between the device and a plurality of distributed anchors, wherein the anchors have known positions within the environment and the observations are obtained by a first set of one or more sensors; defining a time window for the time at which the position of the device needs to be estimated; for each observation obtained at a point in time within the time window, estimating from the observation the distance and / or angle from the device to the anchor; estimating the displacement of the device due to the movement of the device between the time the observation was obtained and the time needed, wherein the displacement is estimated based at least in part on observations obtained by a second set of one or more sensors; using at least one model having at least one hidden state parameter for estimating the distance and / or angle or position of the device with respect to the anchor and / or for estimating the displacement of the device; adjusting the position of the anchor involved in the observation by the displacement to compensate for the effect of the movement of the device; calculating a provisional position of the device at the time needed based on the distance and / or angle and the adjusted anchor position; determining the difference between the predicted distance or observation and the measured distance or observation from the provisional position of the device and the adjusted anchor position; in an optimizer, adjusting at least one hidden state parameter to minimize the value of the difference and obtaining an optimized hidden state parameter comprising the method.
17. A computer program product for executing the method according to any one of Claims 1 to 16.
18. A mobile device comprising a processing device, a memory, a first sensor set, and a second sensor set configured to execute the method according to any one of Claims 1 to 16.
19. A system comprising a mobile device, a plurality of anchors, and a processing device configured to execute the method according to any one of Claims 1 to 18.
20. A computer-implemented method for estimating the position of a device within an environment, Obtaining a first set of observation values at a plurality of time points over a period, wherein the observation values indicate the relative position of the device in the environment, either alone or in combination with other observation values; Estimating the displacement of the device due to the movement of the device at the time points during the period from a second set of observation values; Adjusting the first set of observation values using the estimated displacement such that each observation value for the device at a single time appears; Estimating the position of the device at the single time based on the adjusted observation values A method comprising.