=Paper= {{Paper |id=Vol-2626/paper6 |storemode=property |title=Sensor Fusion and Well-Conditioned Triangle Approach for BLE-based Indoor Positioning |pdfUrl=https://ceur-ws.org/Vol-2626/paper6.pdf |volume=Vol-2626 |authors=Amrit Karmacharya,German M. Mendoza Silva,Joaquín Torres-Sospedra |dblpUrl=https://dblp.org/rec/conf/icl-gnss/KarmacharyaST20 }} ==Sensor Fusion and Well-Conditioned Triangle Approach for BLE-based Indoor Positioning== https://ceur-ws.org/Vol-2626/paper6.pdf
Sensor Fusion and Well-Conditioned Triangle Approach
for BLE-based Indoor Positioning
Amrit Karmacharyaa , German M. Mendoza-Silvaa and Joaquin Torres-Sospedraa,b
a
    Institute of New Imaging Technologies,Universtiat Jaume I, Avda Vicente Sos Baynat S/N, Castellón, Spain
b
    UBIK Geospatial Solutions S.L., Espaitec 2, Avda Vicente Sos Baynat S/N, Castellón, Spain


                                         Abstract
                                         GPS has been a de-facto standard for outdoor positioning. For indoor positioning different systems
                                         exist. But there is no general solution to fit all situations. A popular choice among service provider
                                         is Bluetooth Low Energy (BLE) based Indoor Positioning System (IPS) . BLE has low cost, low
                                         power consumption, and it is compatible with newer smartphones. This paper introduces two ways
                                         for accuracy improvement i) a new algorithm for BLE-based IPS based on well-condition triangle and
                                         ii) fusion of BLE position estimates with IMU position estimates was implemented. Fusion generally
                                         gives better results but a noteworthy result from fusion was that the position estimates during turns
                                         were accurate. When used separately, both BLE and IMU estimates showed errors in turns. Fusion
                                         with IMU improved the accuracy of BLE based positioning.

                                         Keywords
                                         BLE, Indoor Positioning, Well-conditioned Triangle, Delaunay Condition




1. Introduction
People spend about 80 percent of their time indoors [1]. Even if people do have adequate
knowledge of his/her surrounding, the provision of accurate positioning is always beneficial to
have at the time of emergencies. Additionally in places like airports, libraries, museums, malls,
and warehouses it is not possible to know every corner, especially for newcomers.
  The main available positioning technologies –GNSS– are for outdoor scenarios. Unfavor-
ably its accuracy in indoor environments is not enough. Due to advancement in technologies
several other systems have emerged which can provide positioning and localization in indoor
environments, or in those places where GNSS signals are weak or unavailable.
  The indoor positioning market is predicted to be 10 billion USD by 2020 [2]. Novel uses of in-
door positioning have appeared in health care where proximity interaction between individuals
was studied to track the spread of influenza [3].
  Smartphones are seen as the best platform for mass market indoor positioning due to their
ubiquity and convenience. The past decade witnessed major developments in smartphone
technology which usually come with wide array of sensors. These sensors can be leveraged for
position estimation. The Skyhook company provides “Precision Location” service using Wi-Fi,
GNSS and Cellular network signals [4].


ICL-GNSS 2020 WiP Proceedings, June 02–04, 2020, Tampere, Finland
email: amrit.karmacharya@uji.es,akarmacharya8@gmail.com (A. Karmacharya); gmendoza@uji.es (G.M.
Mendoza-Silva); jtorres@uji.es,torres@ubikgs.com (J. Torres-Sospedra)
orcid: 0000-0003-0096-5876 (A. Karmacharya); 0000-0003-2744-0236 (G.M. Mendoza-Silva);
0000-0003-4338-4334 (J. Torres-Sospedra)
                                       ⃝
                                       c 2020 Copyright for this paper by its authors.
                                       Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
    CEUR
    Workshop
    Proceedings
                  http://ceur-ws.org
                  ISSN 1613-0073       CEUR Workshop Proceedings (CEUR-WS.org)
   IPS solutions based on only one technology are more prone to inaccuracies due to the sensor
noise [5]. Combining results from two or more technologies deliver better results than single
ones [6, 7, 8]. Many research proposals combine Wi-Fi or BLE with PDR to improve accuracy
[6, 9, 10].
   BLE is a suitable alternative to Wi-Fi since it is more accurate [11] with 1 to 2m accuracy [12].
BLE beacons are cheap, small, configurable devices with low power consumption. Moreover,
the position of BLE beacons are known in advance and may be deployed in high density
network for positioning purposes. Due to these advantages [11], BLE is popular among IPS
service providers and used for proximity application or relatively cheap positioning.
   For improving accuracy of BLE systems researchers have investigated diverse techniques.
Linearizing non-linear beacon readings [7], applying stigmergy [13], channel diversity, Kálmán
filtering and weighted triangulation [14] have been explored. Still, huge potential exists for
further research because existing solutions are not flawless.
   In a beacons group, many permutations of beacons are possible but it is possible to choose a
beacons permutation which provides the least possible error in the position estimate. According
to a surveying concept, position estimation based on a well-conditioned triangle ensures least
error[15]. To the author’s knowledge this concept has not been explored so far in IPS. So, one
of the goals of this paper is to implement the concept of well-conditioned triangle for choosing
beacons used in BLE position estimation.
   The main contributions of this paper are:

   • To design and implement a positioning algorithm based on well-conditioned triangle for
     BLE positioning and study its effects.

   • To implement an integration of BLE positioning and inertial method.


2. Related work
Large efforts have been dedicated to find new solutions for indoor positioning in the last decade.
Various surveys shed light on state of art techniques in specific domains. Correa et al. [16]
focus on mass market applications, Dhobale et al. [17] reviews from user prospect, Diaz et al.
[18] narrows down on inertial sensors. Wi-Fi was the most prevalent technology followed by
light and Wi-Fi is predicted to remain dominant unless cheaper solution are found [1, 16]. But
newer smartphones have restricted Wi-Fi scans that may cause decline in Wi-Fi IPS [1, 11].
   Low cost and smartphone based IPS solution have high demand[6]. Light and BLE based
IPS are currently runner-up in terms of research, but BLE is popular among IPS providers
[1]. Accuracy, infrastructure cost and scalability are important factors or choosing an IPS [16].
Coverage, complexity, robustness, privacy and power consumption are also significant [1]. Due
to many parameters, there is no clear winner, many solutions have been proposed adhering to
different environment and applications.
   Dead reckoning, fingerprinting, trilateration, triangulation, proximity estimation, visual lo-
calization are popular techniques for indoor positioning. Combination of one or more of these
techniques is also possible. Such systems are called hybrid systems, being LearnLoc, Kailos,
Surround Sense some representative examples. A comprehensive discussion on hybrid systems
is provided by Easson et al. [19]. Research landscape is focused on experimentation with
different combinations of technologies.
Figure 1: Error for same change in weights for different triangle geometry


   Sensor fusion enables to control drift error in an IPS [6, 7, 20, 8, 21]. IPS systems are
complementary to each other. Wang et al. [20] found Tracking of moving target was better
with fusion and recommends adding another sensor for better performance. Zihajehzadeh et
al. [21] states that fused system can maintain tracking during GPS outrages for 5 second with
error less than 2 m. Chen et al. [8] fused Wi-Fi and inertial sensors and improved them using
landmarks. This shows that fusion is not limited to sensors. Combination is possible with
many technologies. Map matching is a powerful technique if the layout of place is already
known. Popular techniques for fusion are Kálmán Filter and Particle Filter. Kálmán filter are
based on Gaussian filtering or Bayesian filtering, whereas Particles filters are based on solution
of Bayesian filtering [22].


3. Methods description
Two independent technologies have been used for postition determnation: BLE and IMU.
The estimates from these two techologies have been fused to complement each other and
improve accuracy. As for BLE estimates, weighted centroid (WC) algorithm was used and
a new modification to WC algorithm has been proposed. The new modification is based on
well-conditioned triangle. For IMU estimates stride-length and heading algorithm has been
implemented. Overall method is presented in figure 1.

3.1. Test Environment
The experiment area is a wing of a university library. Measurements are carried out in the 5th
floor of the library where the BLE beacons had been deployed. This area is among bookshelves
which can block RSS signals. The beacons were placed in the top of the book shelves. They
are not visible from outside. 22 BLE beacons were deployed in the area. The deployment
resembles a dense distribution (1 beacon per 7.86 sq. m.). The area and device settings are
same from [12].

3.2. Well-conditioned triangle
In trilateration error in position computation depends on the geometry formed by the three
known points. The shape of triangle formed by those three points affect the accuracy [15].
                                         (a)                                 (b)
Figure 2: Top view of the experiment area. (a) Plan of shelves, beacons and test track in Experiment Area.
(b) Beacons placed on the top of book shelves [12]




Figure 3: Error for same change in weights for different triangle geometry


   In Figure 3, consider the known points (example BLE beacons) are represented by blue stars.
Two of the sides are of unit 2 and length of the third side is dependent on geometry. Suppose
that in ideal condition with no multipath and ideal path loss, the readings can be equally
trusted so they are given weights of [1,1,1] respectively. The unknown position is calculated
as weighted average of the known points. The calculated position from the above weights is
shown in diamond. Now suppose due to some error in signal from the upper point, it is trusted
a bit less. Now the weights become [1,1,0.9]. Position computed with these weights are shown
in cross. From the figure it is evident that the error in position due to change in weight is
least for an equilateral triangle and the position error increases as the triangle deviates towards
scalene.
   Theoretically in an isosceles triangle with two angles of 56◦ 14’, change in any measurement
(distance or angle) to unknown point will have least effect on the resulting position. Such
a triangle is known as a well-conditioned triangle [15]. This value takes one side as base for
computation. But a triangle can be solved from other sides as well so the best geometry is an
equilateral triangle. In practice equilateral triangles are rare, so a well conditioned triangle is
defined as a triangle in which no angle is less than 30◦ . Triangles having angles less than 30◦
are considered to be ill-conditioned and should not be used for position estimations.
                                   (a)                          (b)
Figure 4: Possible triangulation mesh with four points [23]


3.3. Delaunay condition
A Delaunay triangulation is a set of lines joining a set of points together such that each point
is joined to its nearest neighbors. The set of lines form a triangular mesh. In this triangular
mesh every circum-circle of a triangle does not contain any other points of the set within it.
Delaunay condition states that the circum-circle of any triangle should not contain any other
point inside it. Circum-circle is the circle that passes through the vertices of a triangle. A
triangular mesh satisfying delaunay condition is called delaunay triangulation. For example,
from a set of four points it is possible to form four different triangles. Among the four triangles
only two triangles will satisfy Delaunay condition. It is a property of delaunay condition that
the triangles are selected in such way that the minimum internal angles of the selected triangles
are as large as possible. Due to this property, the member triangles are considered well shaped.
This is important property as maximizing the minimum angle favors well-condition.
   In Figure 4(a), the triangles satisfy the Delaunay condition as the circle does not have any
points in them. In contrast to previous one, the circum-circles of the triangles in Figure 4(b)
have points in them and hence these triangles do not satisfy the Delaunay condition. It can
be observed that these triangles have sharper angles nodes V2 and V4 than the previous ones.
There is always the possibility to convert this triangulation into Delaunay by replacing the
edge V2-V4 with V1-V3 as this would increase the minimum internal angles and fulfillment of
the Delaunay condition can be expected. Another property of Delaunay condition is it uses
nearest-neighbor relation to connect the points. This enhances the implications of Delaunay
triangulation in data interpolation as well. The concept of Delaunay triangulation for 3D is also
similar, only the circum-circle is replaced by circum-sphere and triangulation by tetrahedrons.

3.4. BLE Positioning Method
BLE sensor registered advertisements anytime an advertisement is detected. Each BLE ad-
vertisement had its own timestamp value. Positioning requires analysing a group of advertise-
ments that are closer in time. This made it necessary to group advertisements by time window.
Two techniques of grouping window have been used namely i) Discrete Time Window and ii)
Continuous Time Window.
                                   (a)                            (b)
Figure 5: Buckets in Discrete (a) and Continuous (b) grouping technique


3.4.1. Discrete and continuous Time Window
In the discrete time window technique, advertisements were collected in non-overlapping buck-
ets for certain time, e.g. 1 second, 1.5 seconds, 3 seconds. Advertisements detected within a
time window were grouped in same bucket. Then the advertisements in the bucket were used
to compute position. After the time for a bucket expires, new bucket was created and the
process was repeated.
   Continuous time window features an extra update interval parameter on top of discrete
window technique to allow having overlapping buckets. The update interval parameter dictates
how often position is computed. In this technique, a bucket is created at set intervals e.g every
0.1 second or 0.5 second. Each bucket will collect advertisements for a certain time set by
window size. Update interval is kept lower than window size so buckets overlap each other.
An advertisement may fall in many buckets. When a bucket expires, position is computed
from the advertisements collected in that bucket. In continuous time window technique the
two latter advertisements get grouped into same window more times than the former two.
This way simultaneous advertisements have more effect. This makes continuous window more
sensitive than the discrete method. Disadvantage is that this technique runs more frequently
and processes the same advertisement multiple times. It requires more computation resources
than discrete technique so it may not be suitable for low end processors.
   In both cases, it is possible that more than one advertisement from same beacon are ob-
served in same bucket. In such case, those redundant advertisements need to be processed by
computing the average value, keeping the highest value or just keeping the last value.

3.4.2. Weighted Centroid for BLE
Weighted centroid method [24] is applicable where beacon positions (xi , yi ) are known be-
forehand. The WC method uses k beacons detected with the highest RSS values in the BLE
fingerprint, where 1 ≤ k ≤ n n being the number of beacons deployed in the target area. The
position estimate is given by the equation 1, using weights calculate by equation 2.
                   k                      k                                 ′
                                                                      ω
                                                              ωi = ∑︁k i
                  ∑︂                     ∑︂
             x=         ωi x i ,    y=         ωi yi   (1)                      ′
                                                                                    (2)
                  i=1                    i=1                              j=1 ωj
  where:
   ′
 ωi = weighting factor
 k = number of nearest beacons to consider for position estimate

   The weighing factor was computed using an existing empirical model developed for the test
environment. The model exploits the reduction of signal strength during transmission. It
converts an RSS value to a weight value. Higher signal strength get higher weight and lower
signal strength get lower weights.
Figure 6: Effect of farther beacons on position estimate


3.4.3. Proposed method for BLE based on Well-Conditioned Triangles
A new method was proposed to select beacons used in positioning. Due to the error in the
RSS value, any calculations that use RSS values are prone to transfer the error. This method
is based on the beacons layout. Known distance between beacons were more precise than
distances computed using RSS values. Calculations based on precise distances should be more
reliable than those based on less precise distances. The method works in following way. First,
list of detected beacons in a window were arranged in descending order of RSS value. This was
to arrange beacons in order of proximity. Signal strength decreases with increasing distance
so higher RSS value correspond to closer source. After that, 3 nearest beacons were selected
and checked for well-condition. If they satisfied well-condition then position was estimated
as weighted average of the selected beacons. If the 3 selected beacons did not satisfy well-
condition, next proximal beacon was added(︁ )︁to selection. It is possible to form four different
triangle using combination of four points ( 43 = 4). With five points number of combination
increases to 10 ( 53 = 10). An efficient way is required to reduce computation. Delaunay
                  (︁ )︁

triangulation creates a triangular network that maximizes the minimum angle of any triangles
in the network and the triangles do not overlap each other. This method is suitable to get
well-conditioned triangles and reduce number of combinations. When multiple well-conditioned
triangles were detected, weighted average of beacons in well-conditioned triangles was used as
estimate. If no well-conditioned triangle are detected, next closest beacon is added.
   Figure 6 shows the innovation of the proposed algorithm. The data is from library building
in the BLE open dataset [12]. In this figure, green stars are beacon positions. Blue circle
is true position. Dotted blue line connects the true positions to beacons in descending order
of RSS. All BLE beacons may not be detected at any given instant, so the line connects
only those beaons which were detected in a certain time window. These beacons were used
for estimating position using fingerprinting and WC method in the dataset. Red diamond is
the position output using WC method using all detected beacons (k = n). Solid blue line
represents a well-conditioned triangle. The black plus sign represents the position computed
using proposed method. Position estimate used only the 3 closest beacon but the result is
closer to true position than estimates using WC method.
Algorithm 1: Selection of beacons using well-conditioned triangle
  Input: BLEscan = Detected Beacons, RSS, timestamp, major and minor
  Output: POsition Estimate
  Start;
  sort BLEscan in descending order of RSS;
  if number of detected beacons < 3 then
      output null;
      break;
  else
      selection = select first 3 beacons from BLEscan;
      /* Set list of well-conditioned triangles to empty                     */
      WCTlist = [];
      while WCTlist is empty do
          DT = DelaunayTriangulation(selection.location);
          // generate triangulation network from selected beacons location
          for triangle in DT do
              if triangle satisfy well-condition then
                   add triangle to WCTlist;
                   break;
              end
          end
          if number of triangles in WCTlist = 1 then
              compute position estimate;
          else
              if number of triangles in WCTlist > 1 then
                   compute position estimate for each triangle;
                   average position estimate;
              else
                   if all beacons used then
                       output null;
                       break;
                   else
                       add next beacon to selection
                   end
              end
          end
      end
  end
3.5. IMU Positioning Method
3.5.1. Stride-Length and Heading for IMU
This method is based on the algorithm proposed by Weinberg [25]. When people move, there
is vertical movement of body in each step. Weinberg [25] used vertical acceleration to detect
step events and Stride-length for each step was computed by an empirical formula given in
equation 3. Gyroscope was used to estimate heading at each step.

                    SL = 2∆K ∗ (max(accmagstep ) − min(accmagstep ))1/4                              (3)

  Algorithm 2: Stride-length and Heading Algorithm
    Input: acc = Accelerometer data and gyr = Gyroscope Data
    Output: Stride-Lengths and Headings
    Start;
    /* Compute Stride-Lengths                                                                   */
    Compute magnitude of acceleration from all the components and store it -> accmag;
    Perform low-pass filter on the computed magnitude ;
    set lower and upper acceleration threshold;
    for each accmag do
        if accmag > lower threshold and accmag < upper threshold then
            mark as motion start
        else
            if accmag < - lower threshold then
                if previous state is in motion then
                    mark as motion
                else
                    mark as motion stop
                end
            else
                mark as in motion
            end
        end
    end
    for each motion start do
        Estimate Stride-length using Weinberg expression given by 3
    end
    /* Compute Headings                                                                         */
    Calculate initial row, pitch and yaw values Create device to global rotation matrix for each
     gyr do
        Update rotation matrix with gyr values
    end
    for each motion start do
        compute heading from rotation matrix
    end
    Output Computed Stride-Lengths and headings


3.6. Sensor Fusion
Kálmán filter is a popular method for sensor fusion. System variables are modelled as state
variables, whereas the real observations modelled as observation state. Kálmán filter works in
two phases i) Predict Phase and ii) Update Phase. Predict phase applies a transition model
to push one state to another state. This phase also computes the predicted co-variance in new
state. In the update phase, newly computed states are combined with observation state using
Kálmán gain to output a filtered estimate. Kálmán gain is a weighting factor calculated on
basis of error co-variance of the transition model and the observation model. It tells how much
to change the predicted state to reflect an observed state.
  Position estimate from stride-length and heading are suitable for prediction phase as a new
estimate is calculated from past estimates. Wi-Fi and BLE estimates are independent to pre-
vious estimates hence a transition model is not possible. This makes it unfit for prediction
phase. On the other hand, position estimates from Wi-Fi and BLE are suitable for observation
state as they provide a stable way to constraint error from prediction phase. The GetSensor-
Data app collects IMU data in higher frequency than BLE and Wi-Fi data combined. This
means that between two estimates from either of the network-based solutions, there are many
position estimates provided by inertial-based solution. Hence, multiple prediction phases occur
between two update phases. Kálmán filter allows this but a mechanism to detect which phase
to execute is required. A mechanism based on timestamp was devised to trigger correct phase
execution.

3.7. How to measure the positioning error
Error is the euclidean distance between position estimate and true position. Position estimates
are obtained from positioning methods described above. True positions are interpolated from
the test track. All the readings have associated timestamp value. Exact start time, each
direction change and exact end time are marked along with the sensor readings. Using the
marks it is possible to interpolate true position at any intermediate timestamp. A script was
made which take list of timestamps as input and output coordinates at those timestamps. BLE
timestamps were derived from the window size and update interval values, for IMU timestamps
of step detection were used. Now that estimated position and true position were known, error
was calculated.


4. Experiments and Results
4.1. Experimental Setup
The evaluation area corresponds to the 5th floor of Universitat Jaume I library and covers an
area of around 176 m2 , the area and device correspond to the the ones in [12]. A total of 22
beacons were placed in the top of the book shelves and they are not visible from outside. The
deployment resembles a dense distribution (1 beacon per 7.86 m2 ). It had been designed with
the goal of supporting a positioning service. The BLE beacons used are Accent Systems’ IBKS
105 and they were configured to broadcast only one iBeacon slot with advertisement period of
200 ms.
   The test data is captured with Samsung S6 smartphone (Model: SM-G920F) running on
android version 7.0 and API Android version 24. The application used for data collection
is GetSensorData version 2.1 which is also used by IPIN conference since 2016 [26]. The
application captures data from android smartphone sensors and outputs them in a log-file.
It supports capturing internal sensors accelerometer, gyroscope, magnetometer atmospheric
pressure, ambient light, proximity, humidity as well as from attached external devices example
RFID reader, XSsens IMU or LPMS-B IMU devices [26]. Since IMU measurements suffer from
Figure 7: Error distribution for each factor


sensor bias, usually a calibration step is required where measurements are collected when the
device is static and bias values are determined. GetSensorData app does not have a calibration
option. But it has option to mark locations. A workaround devised was to stand still for some
seconds before starting to walk

4.2. Results
Figure 7 shows error distribution of the studied factors. On analysing the effect of each factor,
it was observed that the choice of window technique had no drastic effect on accuracy. The
average difference of average error was found to be 0.005m. Among the strategies for adver-
tisement repeats, highest of the BLE repeats had the least error. It was followed by average of
repeats. Last of the repeats had higher average error. Except on window size 3 using discrete
window, error from highest of BLE was lower than other techniques. Proposed positioning
method had similar result but lower variance than WC method. One-second window size fared
higher errors than it’s counterparts. Window sizes of 2 and 3 seconds had improved results
than 1 second. Window size influences effect of other factors on the error. It is reasonable to
study affect of the factors independent to window size.
Table 1
Detailed results of the proposed fusion models
                                          Configuration 1           Configuration 2
                                       BLE IMU Fusion            BLE IMU Fusion
                     # test samples    232    159      159       254    159      159
                     Average error     2.05 1.80      1.37       2.01 1.80      1.39
                     Third Quartile    2.81 2.46      1.84       2.84 2.46      1.80
                     Std. Dev.         0.95 0.84      0.69       1.01 0.84      0.65
                     Standard Error    0.06 0.07      0.05       0.06 0.04      0.05




                 (a) Configuration 1                                   (b) Configuration 2
Figure 8: Position estimates with fusion of IMU and BLE. Red: Estimate using only IMU sensor. Red
dot represent exact position red line is formed by joining red dots in chronological order. Blue: stars mark
estimates from BLE only. Black dots show estimates after fusion. Dotted red and blue line link fusion result
to respective IMU and/or BLE estimate. Green line shows the ground refence. Blue dots are interpolated
from the refernce track using timestamps.


  We considered two configurations for our final evaluation. First, the IMU Position estimates
were fused with estimates from BLE on window size 2 seconds, continuous window grouping,
highest of redundant advertisement and the proposed algorithm based on Delaunay Triangles.
Second, the IMU Position estimates were fused with estimates from BLE on window size 3
seconds, continuous window grouping, average of redundant advertisement and the proposed
algorithm based on Delaunay Triangles. The results are reported in Table 1 and Figure 8.
  The results show that including the inertial data improve the positioning accuracy of the BLE
model and viceversa. Moreover, additional experiments showed that the fused model based on
WC –for BLE positioning– was around 15 cm worse in the third quartile, demonstrating that
the proposed method for BLE positioning is more robust and less prone to very large errors.


5. Conclusions
Improving the positioning accuracy of Indoor Positioning Systems is attracting many re-
searchers around the globe. Literature suggested that sensor fusion was one interesting ap-
proach for that purpose.
  In this work, we considered to integrate IMU data with BLE readings since they available in
most smartphones. Adding inertial data do not require to deploy additional infrastructure and
no extra setups are required. Kálmán filter offered a simple, intuitive but powerful mechanism
for fusion.
  An experiment was designed for comparing accuracy before and after fusion. Existing system
was used as baseline. Sensor fusion results were more accurate than BLE.
  As future work we plan to include map-based filters as an additional source to improve the
navigation experience.


Acknowledgments
The authors gratefully acknowledge funding from Ministerio de Ciencia, Innovación y Univer-
sidades (INSIGNIA, PTQ2018-009981) and Universitat Jaume I (PREDOC/2016/55)


References
 [1] G. M. Mendoza-Silva, J. Torres-Sospedra, J. Huerta, A meta-review of indoor positioning
     systems, Sensors 19 (2019).
 [2] P. Connolly, D. Boone, Indoor location in retail: Where is the money, Business Models
     Analysis Report (2013).
 [3] T. Smieszek, G. Lazzari, M. Salathé, Assessing the dynamics and control of droplet-
     and aerosol-transmitted influenza using an indoor positioning system, Scientific reports 9
     (2019) 2185.
 [4] Skyhook, Precision location, 2020. URL: https://www.skyhook.com/precision-location/.
 [5] P. Davidson, R. Piché, A survey of selected indoor positioning methods for smartphones,
     IEEE Communications Surveys & Tutorials 19 (2016) 1347–1370.
 [6] F. Ye, R. Chen, G. Guo, X. Peng, Z. Liu, L. Huang, A low-cost single-anchor solution
     for indoor positioning using ble and inertial sensor data, IEEE Access 7 (2019) 162439–
     162453.
 [7] J.-G. Lee, S.-H. Lee, J.-K. Lee, Design of the model for indoor location prediction using
     imu of smartphone based on beacon, in: International Conference on Software Engineering
     Research, Management and Applications, Springer, 2018, pp. 161–173.
 [8] Z. Chen, H. Zou, H. Jiang, Q. Zhu, Y. Soh, L. Xie, Fusion of wifi, smartphone sensors
     and landmarks using the kalman filter for indoor localization, Sensors 15 (2015) 715–732.
 [9] H.-Y. Kang, J.-N. Lee, H. Park, M.-J. Bae, J.-B. Kim, Study of a hybrid algorithm for
     indoor positioning, International Journal of Control and Automation 11 (2018) 25–38.
[10] V. Renaudin, M. Ortiz, J. Perul, J. Torres-Sospedra, A. R. Jiménez, A. Pérez-Navarro,
     G. M. Mendoza-Silva, F. Seco, Y. Landau, R. Marbel, et al., Evaluating indoor positioning
     systems in a shopping mall: The lessons learned from the ipin 2018 competition, IEEE
     Access 7 (2019) 148594–148628.
[11] R. Faragher, R. Harle, Location fingerprinting with bluetooth low energy beacons, IEEE
     journal on Selected Areas in Communications 33 (2015) 2418–2428. URL: http://smedia.
     ust.hk/james/projects/people aware smart city applications/paper/1.pdf.
[12] G. M. Mendoza-Silva, M. Matey-Sanz, J. Torres-Sospedra, J. Huerta, Ble rss measure-
     ments dataset for research on accurate indoor positioning, Data 4 (2019) 12.
[13] F. Palumbo, P. Barsocchi, S. Chessa, J. C. Augusto, A stigmergic approach to indoor
     localization using bluetooth low energy beacons, in: 2015 12th IEEE International Con-
     ference on Advanced Video and Signal Based Surveillance (AVSS), IEEE, 2015, pp. 1–6.
[14] V. Cantón Paterna, A. Calveras Augé, J. Paradells Aspas, M. Pérez Bullones, A bluetooth
     low energy indoor positioning system with channel diversity, weighted trilateration and
     kalman filtering, Sensors 17 (2017).
[15] A. K. J. B.C.Punmia, A. K. Jain, Surveying Volume 2, volume II, Laxmi Publications,
     1994.
[16] A. Correa, M. Barcelo, A. Morell, J. Vicario, A review of pedestrian indoor positioning
     systems for mass market applications, Sensors 17 (2017) 1927.
[17] M. D. Dhobale, P. S. Verma, P. R. Joshi, J. K. Tekade, S. Raut, A review on indoor nav-
     igation systems and technologies for guiding the users, International Journal of Scientific
     Research in Computer Science, Engineering and Information Technology (2019).
[18] E. M. Diaz, D. B. Ahmed, S. Kaiser, A review of indoor localization methods based on
     inertial sensors, in: Geographical and Fingerprinting Data to Create Systems for Indoor
     Positioning and Indoor/Outdoor Navigation, Elsevier, 2019, pp. 311–333.
[19] L. J. Easson, Indoor Localization Using a Smartphone: Approaches, Issues, and Chal-
     lenges, Ph.D. thesis, University of Mississippi, 2019.
[20] F. Wang, T. Su, X. Jin, Y. Zheng, J. Kong, Y. Bai, Indoor tracking by rfid fusion with
     imu data, Asian Journal of Control 21 (2019) 1–10. doi:10.1002/asjc.1954.
[21] S. Zihajehzadeh, D. Loh, T. J. Lee, R. Hoskinson, E. J. Park, A cascaded kalman
     filter-based gps/mems-imu integration for sports applications, Measurement 73 (2015)
     200 – 210. URL: http://www.sciencedirect.com/science/article/pii/S0263224115002821.
     doi:https://doi.org/10.1016/j.measurement.2015.05.023.
[22] V. Fox, J. Hightower, L. Liao, D. Schulz, G. Borriello, Bayesian filtering for location
     estimation, IEEE pervasive computing 2 (2003) 24–33.
[23] MathWorks, Delaunay triangulation, 2020. URL: https://www.mathworks.com/help/
     matlab/math/delaunay-triangulation.html.
[24] M. Muñoz-Organero, P. J. Muñoz-Merino, C. Delgado Kloos, Using bluetooth to imple-
     ment a pervasive indoor positioning system with minimal requirements at the application
     level, Mobile Information Systems 8 (2012) 73–82.
[25] H. Weinberg, Using the adxl202 in pedometer and personal navigation applications,
     Analog Devices AN-602 application note 2 (2002) 1–6.
[26] A. R. Jiménez, F. Seco, J. Torres-Sospedra, Tools for smartphone multi-sensor data
     registration and gt mapping for positioning applications, in: 2019 International Conference
     on Indoor Positioning and Indoor Navigation (IPIN), IEEE, 2019, pp. 1–8.