=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==
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.