You are currently viewing a new version of our website. To view the old version click .
Sensors
  • Article
  • Open Access

20 August 2019

Pressure-Pair-Based Floor Localization System Using Barometric Sensors on Smartphones

,
,
and
1
Department of Information and Communication Engineering, Inha University, Incheon 22212, Korea
2
Papaya Co., Ltd., Incheon 22106, Korea
3
College of Computing, Georgia Institute of Technology, Atlanta, GA 30332, USA
*
Author to whom correspondence should be addressed.
This article belongs to the Section State-of-the-Art Sensors Technologies

Abstract

As smartphone technology advances and its market penetration increases, indoor positioning for smartphone users is becoming an increasingly important issue. Floor localization is especially critical to indoor positioning techniques. Numerous research efforts have been proposed for improving the floor localization accuracy using information from barometers, accelerometers, Bluetooth Low Energy (BLE), and Wi-Fi signals. Despite these existing efforts, no approach has been able to determine what floor smartphone users are on with near 100% accuracy. To address this problem, we present a novel pressure-pair based method called FloorPair, which offers near 100% accurate floor localization. The rationale of FloorPair is to construct a relative pressure map using highly accurate relative pressure values from smartphones with two novel features: first, we marginalized the uncertainty from sensor drifts and unreliable absolute pressure values of barometers by paring the pressure values of two floors, and second, we maintained high accuracy over time by applying an iterative optimization method, making our method sustainable. We evaluated the validity of the FloorPair approach by conducting extensive field experiments in various types of buildings to show that FloorPair is an accurate and sustainable floor localization method.

1. Introduction

Ever since smartphones were equipped with barometers, starting in 2012, numerous research efforts on floor localization have tried to improve the accuracy of identifying a smartphone user’s floor location in a multi-floor building. Most of those efforts have succeeded only in detecting floor changes or the number of floors changed instead of determining the exact floor number. This is due to barometer limitations, such as sensor drifts, temporal variations, and unreliable pressure readings. With recent advances in micro-electro-mechanical systems (MEMS) technology, however, modern MEMS barometers have low power consumption, low cost, and very high-performance sensors. Because of these beneficial characteristics, barometers are now found in an abundance of mobile devices, including smartphones and tablets.
Despite all these opportunities, the floor localization problem remains a big challenge, since no existing methods identify a floor number with near 100% accuracy—a critical requirement for various applications, such as emergency location service, worker location tracking service, and clinical monitoring applications.
To cope with this problem, our goal was to design and implement a novel floor localization method that is able to estimate the exact floor number on which a smartphone user is located. Concretely, we argue that it is important to rethink the floor localization framework by exploring a relative pressure map [1] to maximize accuracy. The relative pressure map is a one-dimensional array containing pressure differences between the reference floor and the other floors. Note that the reference floor may be the same as or different from the first (ground or entry) floor. If a building has one entry point on the first floor, the first floor will be the reference floor in most cases for small buildings. However, because most buildings have many entry points on multiple floors, the reference floor may not be the first floor or one of the entry floors. In this paper, we define the reference floor as a logical floor that plays the role of a reference point in a relative pressure map.
Once we build this relative pressure map, we are able to compute the exact floor number using the difference between the pressure of the reference floor and the current floor as an index into the relative pressure map. With these observations in mind, we present a pressure-pair-based floor localization method called FloorPair, which constructs a relative pressure map for a building and thus offers near 100% accuracy under various environmental conditions.
Our contributions in this paper are:
(1) We propose a novel pressure-pair-based approach called FloorPair for constructing a relative pressure map. FloorPair makes use of pressure pairs between the reference floor and other floors in a multi-floor building and thus aggregates those pairs into a list of pressure differences, i.e., a relative pressure map.
(2) We introduce the marginalization of sensor drifts and absolute pressure errors when computing pressure differences. With this marginalization of unreliable characteristics, we construct a relative pressure map.
(3) We present an iterative optimization method based on the framework of the EM (expectation and maximization) algorithm to track pressure changes due to weather conditions in real-time. Using this method, we eliminate accumulated errors over time and provide a reliable and sustainable floor localization service.
(4) Through extensive experiments, we show that FloorPair offers a near 100% accurate floor localization result, and is an alternative for critical applications, such as emergency location service, worker location tracking service, and clinical monitoring applications.
The rest of the paper is organized as follows: The next section gives an overview of the related work in floor localization using the barometer and our motivations. The following Section 3 presents the advancements in modern barometers and new application opportunities. Section 4 touches on the efficacy of the barometer for floor localization and describes our marginalization of sensor drifts and unreliable absolute pressure readings. In addition, this section describes how the design of our FloorPair method efficiently constructs a relative pressure map and how it maximizes floor localization accuracy. We present the performance results of FloorPair in Section 5 and finally present our conclusion and future work in Section 6.

3. New Characteristics of Modern Barometers on Smartphones

3.1. High and Consistent Pressure Sensing Accuracy

To clearly show the improvement in pressure sensing accuracy of modern barometers, we present the noises from Samsung Galaxy Note 4, released in 2014 and LG V40, released in 2018. As shown in Figure 1, the barometer on the more recent smartphone produces low noise and thus has a lower standard deviation in pressure measurements, as shown in Table 1.
Figure 1. Noise differences between 2014 and 2018 smartphones. (a) Samsung Galaxy Note 4; (b) LG V40 ThinQ.
Table 1. Standard Deviations of 2014 and 2018 smartphones

3.2. Constant Pressure Difference between Two Floors

In addition to their low noise characteristics, recent barometers have become more accurate in relative pressure values. Although recent barometers still suffer from sensor drift and unreliable absolute pressure measurements, the difference of the barometer readings between any two floors has become more constant.
To demonstrate this characteristic, we conducted experiments in a university building, the Hi-Tech Center at Inha University, with four smartphones under high and low pressure conditions. Specifically, the smartphones used in the experiment were the LG V40, V10, and two Samsung Note 5s. We used two Note 5s to show that there are non-negligible errors in pressure readings, even from two devices of the same company and model. The building has 15 stories whose heights are 5 m for the basement floor, 4.5 m for the ground floor, and 3.9 m from the second floor to the 15th floor.
As shown in Table 2 and Figure 2, the pressure differences are steady and in-sync across different devices and different weather conditions. In order to clearly show this characteristic, we present the differences between two floors and their standard deviations in Table 3.
Table 2. Barometric pressures measured by various devices and weather conditions.
Figure 2. Steady and constant pressure differences across various devices and weather conditions.
Table 3. Pressure differences and standard deviations.

3.3. Challenges for Constructing a Relative Pressure Map

Even though modern barometers show the advancements described in the previous subsections, the barometers on recent smartphones still have the problem of sensor drift, which is a key challenge in constructing a relative pressure map. To clarify this characteristic, we took pressure readings at the same place and time using the LG V40, V10, and two Samsung Note 5s, as shown in Figure 3. We can see that the four devices display four different pressure values and also that the maximum difference is 1.4 hPa, which may result in a floor localization error ranging up to four stories in a typical building.
Figure 3. Pressure differences at the same place: (a) LG V40; (b) LG V10; (c) Samsung Note 5; (d) Samsung Note 5.
Through Figure 3, we can observe that the barometers still have an inherent drift from the real atmospheric pressure and that the drift varies even between two devices of the same company and model. In addition, Figure 3 shows that the absolute pressure measured by modern barometers is still unreliable. This unreliable characteristic of absolute pressure is also seen in Figure 2. Hence, to make use of the barometer pressure readings, it is important to calibrate sensor drift and absolute pressure readings. Based on these observations, we develop a novel algorithm to marginalize these two uncertainties and thus construct a relative pressure map, as will be described in Section 4.

4. Design and Implementation of FloorPair

In this section, we describe a pressure pair based floor localization called FloorPair, which aims to determine the exact floor number on which smartphone users are located. We designed FloorPair to achieve three goals: first, we constructed a relative pressure map with minimum costs; second, using the relative pressure map, we provided near 100% accuracy in determining the exact number of the floor; third, we maintained 100% accuracy over time for the sustainability of the floor localization service.
We first give a description of the variables used in this paper in Table 4.
Table 4. Definition of variables.
A pressure value at each floor is estimated by Equation (1):
P(f) = Pground + drift + FP(1, f).
Let us assume that Pground is the ground truth pressure of the reference floor and that we want to know a floor pair, FP(1, f). Note that, as described in Section 1, the reference floor may or may not be the first floor. For simplicity, however, we assume that the reference floor corresponds to the first floor in Equation (1). Then, as described in Table 4, FP(1, f) denotes the pressure difference between the reference floor (1) and the f-th floor. We construct a relative pressure map using a set of these FPs.
However, it is almost impossible to obtain the exact value of the sensor drift because every smartphone has a different value of drift, as described in Section 3.3. In addition, it is also impractical to measure Pground because we need a pre-installed and high-cost barometer on the ground floor. Therefore, in order to obtain a floor pair, we need to marginalize these two variables. For example, if we want to know FP(1, f), we get it by subtracting Equation (2) from Equation (3):
P(1) = Pground + drift + FP(1,1),
P(f) = Pground + drift + FP(1, f).
Then, FP(1, f) can be obtained by the following equation, since FP(1,1) is zero:
FP(1, f) = P(f) − P(1).
Our goal was to construct a relative pressure map using these FPs. Given a set of FPs, we may think that we easily construct a relative pressure map. Specifically, once we collect all pressure values at every floor, P(f), we simply build a relative pressure map by subtracting P(1) from P(f).
However, this naïve approach does not intuitively work for three reasons. First, pressure value varies, even during the process of pressure collection on each floor. This means that only pressure values collected within a time threshold T are valid when obtaining floor pairs. Second, we need to reduce the cost of collecting pressure values for practical reasons. We aimed at constructing a relative pressure map with minimal cost. Third, even after successfully constructing a relative pressure map, we had to iteratively update the value of Pref because pressure values such as Pref and Pcur continued to vary over time. In the next three subsections, we address each of these three issues.

4.1. Pressure Variations in Minutes

Barometric pressure varies often enough to change every minute. To show this characteristic, we use the dataset of the pressure measurements in Seoul in February 2019 [14]. Table 5 summarizes the number of pressure changes in n minutes. For example, there were 20 cases where pressure variation in 1 minute was greater than 0.2 hPa. Similarly, the number of pressure variations greater than 0.3 hPa in 3 minutes was 94.
Table 5. The number of pressure variations in n minutes.
Table 5 shows that a pressure value measured at a specific time t and a pressure value measured at t + T cannot be paired for calculating a relative pressure value. In other words, a floor pair is established only among the pressure values measured at times within a time threshold T. For small and low buildings, we may collect all pressure values required to construct a relative pressure map within T. In this case, we simply construct relative pressure maps for such buildings by calculating the differences between Pref and P(f). However, in reality, we have to take into account the case where we cannot collect the required pressure values within T. To address this problem, we developed the FloorPair algorithm.

4.2. FloorPair: Generating a Relative Pressure Map from Collected Pressure Data

An input of the FloorPair algorithm is a set of collected pressure tuples consisting of floor number, pressure reading, and its timestamp (line 1 in Algorithm 1). Using these tuples, we generated a valid set of floor pairs using only tuples collected within T. Specifically, we generated a floor pair FP(fpivot, fprobe) with a condition where fpivot was greater than fprobe and the difference of their timestamp was less than T (line 6 in Algorithm 1).
Algorithm 1. Generating a set of pressure pairs
1
2
3
4
5
6
7
8
9
10
11
input: collected_pressure_set //A set of tuples, containing (floor, pressure readings, timestamp)
output: FP_set // A set of FloorPairs, FP(fpivot, fprobe)
 
for a tuple Qcollected_pressure_set // self-join
 for a tuple R ∊ collected_pressure_set
  if Q.floor < R.floor and |Q.timestamp − R.timestamp| < T (= 5 min)
    FP(Q.floor, R.floor) ← R.pressure – Q.pressure
     Add FP(Q.floor, R.floor) to FP_set
 
Sort FP_set on fpivot, fprobe in { 1, −1, 2, −2, 3, −3 … } order // Floor order closer to the reference floor
return FP_set // return to Algorithm 2
To illustrate the algorithm for constructing a set of floor pairs, we present a running example in Table 6 and Table 7. Note that we used a special order that represents a floor order to consider floors close to the reference floor first, i.e., {1, −1, 2, −2, 3, −3..}. To implement this floor order, we added 0.5 to the absolute value of negative floor numbers. For example, a basement floor B1 is greater than 1F and is less than 2F because the floor number of B1 is converted to 1.5.
Table 6. Input of Algorithm 1, collected_pressure_set.
Table 7. Output of Algorithm 1, FP_set.
When Q = (1, 1000, 12:01), the possible tuples to be paired are (−1, 1001, 12:01), (2, 999, 12:04), (6, 995, 12:02) collected before 12:01 + T(= 5 min), satisfying the condition in line 6. Note that we heuristically set T to 5 minutes based on Table 5. These three tuples resulted in three floor pairs, FP(1, −1), FP(1,2), and FP(1,6), as shown in the first three rows in Table 7. When Q = (3, 991, 13:01), the possible tuple is (4, 990, 13:00), resulting in FP(3,4).
After constructing a set of floor pairs, FP_set, we sorted it in the floor order for Algorithm 2, as shown in line 10 in Algorithm 1.
Algorithm 2. Constructing a Relative Pressure Map
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
input: FP_set
output: Diff_map
 
Initialize Diff_map[ftopfbottom], pivot_floors[ftopfbottom] to 0
Set Diff_map[1] ← 0, pivot_floors[1] ← 1
 
for a tuple RFP_set // Forward merging from pivot floors
 if pivot_floors[R.fpivot] ≠ 0 and pivot_floors[R.fprove] = (0 or R.fpivot)
   Update Diff_map[R.fprobe] after including (Diff_map[R.fpivot] + FP(fpivot, fprobe))
   pivot_floors[R.fprove] ← R.fpivot;
 
for a tuple RFP_set // Backward merging from probe floors
 if pivot_floors[R.fprove] ≠ 0 and pivot_floors[R.fpivot] = (0 or R.fprove)
   Update Diff_map[R.fpivot] after including (Diff_map[R.fprove] − FP(fpivot, fprobe))
   pivot_floors[R.fpivot] ← R.fprove;
 
for f in range − fbottom ~ ftop // Complete a relative pressure map using linear interpolation
 if pivot_floors[f] = 0 // Fill a zero item with a linear interpolated value
   Diff_map[f] ← linear interpolation between two nearest non-zero values in Diff_map
 
return Diff_map // return to Algorithm 3
Algorithm 2 constructs a relative pressure map, Diff_map, using FP_set from Algorithm 1. First, we initialized Diff_map, pivot_floors, as shown in line 1~5 in Algorithm 2. Each column named “initial state” in Table 8 and Table 9 shows the initial values of Diff_map and pivot_floors, respectively. Each element of the pivot_floors array contains its corresponding pivot floor number. Note that the bold and underlined numbers denote the values updated at that stage.
Table 8. Construction of a relative pressure map, Diff_map.
Table 9. pivot_floors while constructing Diff_map.
At the stage of “Merging (1,x)”, there were three pairs whose pivot floor was 1, i.e., (1, −1), (1,2), and (1,4) in FP_set. Then, the values for the −1, 2, 4 floors in Diff_map were updated to 1, −1, and −5, respectively (line 9 in Algorithm 2). In addition, in line 10 in Algorithm 2, the pivot floor numbers in the pivot_floors array were updated to 1. At the next stage of “Merging (−1,x)”, there were two pairs whose pivot floors were −1, (−1,2), and (−1,6). However, because the value of the probe floor 2 already had the relative pressure −1, the FP(−1,2) did not change the value of the probe floor 2. Similarly, the FP(−1,6) did not update the value of the probe floor 6, −5. Therefore, there were no changes at “Merging (−1,x)”.
At the “Merging (3,x)” stage, there was one FP(3,4). However, it cannot change any values because the pivot value of 3 in the pivot_floors array was 0, which means that there was no connection to the reference floor. Figure 4a illustrates the pair relationship trees after the first for-loop in line 7~10 in Algorithm 2. As shown in Figure 4a, it was possible that the pair relationship trees were disconnected and thus formed a forest. In other words, the FP(3,4) had no connection to the reference floor, 1, which meant that there was no relation to calculate the pressure difference between the reference floor and floor 3. To prevent this case, we examined a pair relationship again but in reverse by swapping the role of the probe floor and the pivot floor in line 12~15 in Algorithm 2. In this backward merging step, we connected all separate trees by searching for a relationship between the probe floor (instead of the pivot floor) and the reference floor. The dashed line in Figure 4b shows such a relationship between floor 4 and the reference floor.
Figure 4. Pair relationship tree after forward and backward merging: (a) tree after forward merging; (b) tree after backward merging.
After two merging steps, we filled zero values with linear interpolated values between two nearest non-zero values in Diff_map (line 17~19 in Algorithm 2). Then, we completed a relative pressure map for a building, as shown in the column labeled “Final” in Table 8.

4.3. Estimating the Exact Floor Number and Refreshing the Reference Pressure

Once we obtained a relative pressure map, Diff_map, we estimated the number of the current floor on which a user is located simply by subtracting Pref from Pcur (line 11~12 in Algorithm 3), where Pcur is a pressure reading from a user’s smartphone and Pref is the reference pressure obtained in line 5 in Algorithm 3. As mentioned in Section 2.2, we detected the entry floor, fentry, using [13] and then calculated Pref as shown in line 5 in Algorithm 3.
Algorithm 3. Estimating the Current Floor Using Diff_Map
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
input: Diff_map
output: fcur
  Pcur ← current barometer reading
 // Initialize Pref using fentry from [13]
 PrefPcurDiff_map[fentry]
 
  While(TRUE)
   Pcur ← current barometer reading
 
   // E(expectation)-step: Estimate fcur based on Pref
   PdiffPcur - Pref
   fcur ← index of the value closest to Pdiff in Diff_map
   Report fcur to the caller
 
   // M(maximization)-step: Update Pref based on fcur
   if IsUpdate() ==TRUE    // if a user does not move vertically,
     PrefPcurDiff_map[fcur] // then update the reference pressure Pref in accordance with
             // the current pressure, Pcur on fcur.
However, the issue that makes the floor localization problem difficult is that Pcur continues to vary over time. For example, let us assume that a user is on a floor at a specific time t and its Pcur is 1000 hPa. After the user stays on the same floor for a couple of hours after t, Pcur may have changed to 1020 hPa. This means that the value of (PcurPref) is no longer valid to estimate the exact floor number from Diff_map and thus we need to iteratively update the value of Pref in accordance with the variations of Pcur, as shown in line 16~17 in Algorithm 3. Specifically, if a user moves only horizontally and not vertically for a certain time period s, the value of Pref is updated in accordance with the relative pressure value on fcur in Diff_map (line 16~17 in Algorithm 3).
Algorithm 4 shows the IsUpdate() function. In order to determine whether a user moves vertically or not, we take into account two parameters: the pressure variations, p, allowed for a time period s.
Algorithm 4. IsUpdate() – Determining Whether We Need to Update Pref or Not
1
2
3
4
5
6
7
8
9
10
11
12
13
14
input: Pcur, fcur, Diff_map
output: TURE, FALSE
 
p ← (Diff_map[fcur] − Diff_map[fcur + 1])/2
sp/0.015 // Based on the lower and upper bound
 
if ΔPcur > p in s seconds // if a user’s vertical movement is out of the true range,
           // then return FALSE.
 return FALSE // FALSE means “Don’t update Pref because a user is moving vertically“.
 
if |Diff_map(fcur) − (PcurPref)| > p/2 // if a user stays out of the true range, then return FALSE.
 return FALSE
 
return TRUE // Otherwise, “Update Pref based on fcur“.
Since people usually live on the surface of a floor, we consider the range of vertical displacement of a user’s smartphone as half of the typical floor height. On the basis of this fact, we set p to the half of a pressure difference between two floors, (Diff_map[fcur] − Diff_map[fcur + 1])/2 (line 4 in Algorithm 4).
To determine whether a user is moving vertically or not, we divided a floor height into two ranges, i.e., true range and false range, as shown in Figure 5. The goal of the IsUpdate() function is to return TRUE only if it decides that a user is vertically stable within p (i.e., in the true range) for s seconds. Then, our algorithm updates Pref (line 17 in Algorithm 3). Otherwise, the IsUpdate() function returns FALSE, which means that our algorithm needs not to update Pref because a user is still moving vertically by taking an elevator/escalator or using the stairs. The IsUpdate() function also returns FALSE if a user is in the false range, even though the user stops for s seconds in the middle of stairs, e.g., a stair landing. This is to avoid wrong updates of Pref while a user is moving vertically very slowly. To address this issue, we introduced a lower bound of the parameter s.
Figure 5. Illustration of Algorithm 4.
The lower bound was based on the slowest vertical movement speed of a human, 0.2 m/s [15]. Therefore, the lower bound is calculated by 0.2 (m/s)/8 (m/hPa) = 0.025 hPa/s.
The upper bound of s is derived from Table 5. If s is too long, it means that we cannot distinguish weather changes from users’ vertical movements. Therefore, the upper bound corresponds to the maximum time period over which no change in atmospheric pressure occurs. As shown in Table 5, the number of pressure variations greater than 0.3 hPa is zero within 1 minute, which means that the upper bound is calculated by (0.3 hPa / 60 sec) = 0.005 hPa/s.
The parameter s is determined by p / ((lower bound + upper bound)/2), i.e., p/0.015. For example, if p is the half of a typical floor pressure difference [1,12], 0.2 hPa, the parameter of s is 13 seconds. Since the parameter s is a function of p, the parameter s reflects the height of the floor.
In the case where s exceeds the upper bound, there is a possibility according to Table 5 that a pressure change coming from weather changes is mistaken for a pressure change caused by an actual user’s vertical movement. On the other hand, if s is below the lower bound and a user moves vertically very slowly (e.g., below 0.2 m/s), our method continues to make unnecessary updates of Pref. On the basis of these lower and upper bound characteristics, we set s to p/0.015 seconds in order to provide 100% accuracy, as shown in Section 5.
As shown in Algorithms 3 and 4, our algorithm is based on an iterative optimization method such as the expectation–maximization (EM) algorithm [16], which is widely used in statistics and data clustering in machine learning, to jointly optimize two parameters. Conceptually, when it is hard to optimize two interacting parameters A and B at the same, the EM algorithm optimizes parameter A while holding parameter B’s value. In the next step, the EM algorithm optimizes parameter B based on parameter A from the previous step. The EM algorithm basically alternates between performing an expectation (E) step and a maximization (M) step.
In the E-step of our algorithm, we estimated an initial fcur using Pref. Then, in the M-step, conversely, we optimized Pref using the fcur estimated in the E-step. This new Pref is iteratively used to estimate fcur in the next E step. We present an illustration of our optimization method in Figure 6.
Figure 6. Graphic representation of our iterative optimization method: (a) before applying our optimization method; (b) after applying our optimization method.
Because our algorithm is based on the concept of the EM algorithm, we can easily apply recent machine learning techniques to the floor localization problem and we will leave this as future work.

5. Performance Evaluations

5.1. Collecting Pressure Data

One of our goals was to minimize the cost of collecting pressure data. It is important for the floor localization service to be widely deployed in practice with minimum cost for both construction and maintenance. Our FloorPair method basically needs to collect floor pairs to construct a relative pressure map for a building. Floor pairs are easily collected by reading the numbers of floors in a building and the pressure values and time of a smartphone without special devices or experts.
As described in the following two paragraphs, this collection process is performed only once by anyone who wants to provide the exact number of floors of a building, e.g., the owner of a building, a service provider, or an end-user.
If the floors of a building have the same height, we need only one floor pair. For example, in the case of a university building whose floors have the same height, we constructed a relative pressure map by collecting one pressure value at the first floor and one at the top floor, resulting in FP(1,15), as shown in Table 10. With this one FP, we can build a relative pressure map for this building and thus obtain the exact floor number with 100% accuracy.
Table 10. Process of correcting floor localization errors.
On the other hand, a tall commercial building such as the POSCO tower (B1 ~ 65F) has different heights for different floors. In this case, we need a couple of floor pairs to complete a relative pressure map, as shown in Table 10. First, we collected two pressure values on the first and top floor. Then, we calculated a floor localization error as shown in the column of “1st Error” of Table 10. To correct this error, we collected the 2nd pair, FP(1,2), the 3rd pair, FP(1,14), and the 4th pair, FP(1,36). With these four floor pairs, we easily constructed a relative pressure map for a 66-story building with minimum cost.
Note that once the relative pressure map of a building is completed, it means that it is unique and permanent for that building, and does not need to be collected repeatedly.

5.2. Result of Experiments

As shown in Table 10, our method achieves 100% accuracy by iteratively correcting the errors. Once the relative pressure map is completed, our method also maintains 100% accuracy by optimizing the reference pressure in accordance with the current pressure using the framework of the EM (expectation and maximization) algorithm as described in Section 4.3.
To further validate the efficacy of our method, we conducted extensive field experiments in the various buildings, as listed in Table 11.
Table 11. Buildings used for our field experiments.
Among the five smartphone models in Table 12, we used one or two models to collect floor pairs and five models to evaluate the accuracy of our proposed method, as shown in Table 13. We used different models of smartphones for both collection and evaluation to show that our method works well even when different smartphones are used for collection and evaluation. As shown in Table 14, our method shows 100% accuracy, independent of types of phones and buildings. For each trial, we counted success only when our method consistently showed the exact number of a floor for about 10 minutes to reflect constantly changing pressure values, such as Pcur and Pref. Note that Pcur is measured about 600 times in 10 minutes, while Pref is updated 20 to 50 times depending on the height of a floor.
Table 12. Smartphones used for our field experiments.
Table 13. Environment of experiments.
Table 14. Accuracy and sustainability of FloorPair.
Moreover, in order to further evaluate the sustainability of our method, we conducted the same experiments up to five times for several months. As shown in Table 14, our method maintains 100% accuracy over time. In this paper we used the mean absolute error (MAE) metric defined by MAE = 1 n 1 n | ( e s t i m a t e d   f l o o r   n u m b e r ) ( a c t u a l   f l o o r   n u m b e r ) | , where n is the number of tests, to evaluate the accuracy of our method.

5.3. Reasons for near 100% Accuracy

Even though our FloorPair method showed 100% accuracy in our experiments, our method is said to provide near 100% accuracy for the following reasons: First, we did not conduct our experiments under serious weather conditions, such as tornadoes and hurricanes. In this case, we do not expect that our method provides 100% accuracy. Second, if a user continues to move up and down for a long time, e.g., 5 minutes, it causes about 0.017% error according to Table 5. Third, if a user vertically moves below 12 cm per second, our method mistakes a user’s vertical movement for a weather change, leading to erroneous results. In the second and third cases, our method cannot provide 100% accuracy only to users moving with these extreme patterns, but it continues to provide near 100% accuracy to other users.

6. Discussion

In this paper, we proposed a pressure-pair-based floor localization method called FloorPair that aims at determining the exact number of the floor on which smartphone users are located. Specifically, we had the following three goals for the floor localization problem: first, we construct a relative pressure map with minimum costs; second, using the relative pressure map, we provide near 100% accuracy in determining the exact number of a user’s floor; third, we maintain near 100% accuracy over time for sustainability of the floor localization service.
To achieve these goals, FloorPair first generates a set of pressure pairs from a dataset of pressures collected in a building. In the process of this collection, FloorPair needs only a few pressure readings on a minimum number of floors, unlike previous approaches. Using this set of pressure pairs, FloorPair merges those pressure pairs into a relative pressure map that contains pressure differences between a reference floor and the other floors in the building. On the basis of this relative pressure map, FloorPair determines the exact floor number on which users are located with near 100% accuracy. In addition, FloorPair is able to maintain this high accuracy over time with an iterative optimization method based on the framework of the EM algorithm, making our method sustainable.
Extensive field experiments in various types of buildings show that FloorPair is near 100% accurate and is a sustainable floor localization method with minimum costs. For future work, we plan to augment our method with recent artificial intelligence techniques to further expand the adaptability of our method to various environments.

Author Contributions

Conceptualization, C.Y. and W.C.; methodology, C.Y.; software, C.Y.; project administration, W.C., Y.J.; supervision, W.C. and L.L; writing—review and editing, W.C. and L.L.

Funding

This research was funded by the Korea Electric Power Corporation (grant number: R18XA01) and the Korea Institute of Energy Technology Evaluation and Planning (KETEP) (No. 20161210200610).

Acknowledgments

This research was supported by Korea Electric Power Corporation (grant number: R18XA01). This research was partially supported by the Korea Institute of Energy Technology Evaluation and Planning (KETEP) and the Ministry of Trade, Industry & Energy (MOTIE) of the Republic of Korea (No. 20161210200610).

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Muralidharan, K.; Khan, A.J.; Misra, A.; Balan, R.K.; Agarwal, S. Barometric phone sensors: More hype than hope! In Proceedings of the 15th Workshop on Mobile Computing Systems and Applications, Santa Babara, CA, USA, 26–27 February 2014. [Google Scholar] [CrossRef]
  2. Banerjee, D.; Agarwal, S.K.; Sharma, P. Improving floor localization accuracy in 3D spaces using barometer. In Proceedings of the 2015 ACM International Symposium on Wearable Computers, Osaka, Japan, 7–11 September 2015; pp. 17–178. [Google Scholar]
  3. Youssef, M.; Agrawala, A. The Horus WLAN location determination system. In Proceedings of the 3rd international conference on Mobile systems, applications and services, Seattle, WA, USA, 6–8 June 2015; pp. 205–218. [Google Scholar]
  4. Ye, H.; Gu, T.; Tao, X.; Lu, J. Scalable floor localization using barometer on smartphone. Wirel. Commun. Mob. Comput. 2016, 16, 2557–2571. [Google Scholar] [CrossRef]
  5. Varshavsky, A.; LaMarca, A.; Hightower, J.; De Lara, E. The skyloc floor localization system. In Proceedings of the 5th Annual IEEE International Conference on Pervasive Computing and Communications (PerCom’07), White Plaine, NY, USA, 19–23 March 2007; pp. 125–134. [Google Scholar]
  6. Bahl, P.; Padmanabhan, V.N. RADAR: An in-building RF-based user location and tracking system. In Proceedings of the Conference of the IEEE Computer and Communications Societies, Tel Aviv, Israel, 26–30 March 2000; pp. 775–784. [Google Scholar]
  7. LaMarca, A.; Chawathe, Y.; Consolvo, S.; Hightower, J.; Smith, I.; Scott, J.; Tabert, J. Place lab: Device positioning using radio beacons in the wild. Int. Conf. Pervasive Comput. 2005, 3468, 116–133. [Google Scholar]
  8. Wang, H.; Lenz, H.; Szabo, A.; Hanebeck, U.D.; Bamberger, J. Fusion of barometric sensors, wlan signals and building information for 3-D indoor/campus localization. In Proceedings of the International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI 2006), Heidelberg, Germany, 3–6 September 2006; pp. 426–432. [Google Scholar]
  9. Shen, X.; Chen, Y.; Zhang, J.; Wang, L.; Dai, G.; He, T. BarFi: Barometer-aided Wi-Fi floor localization using crowdsourcing. In Proceedings of the 2015 IEEE 12th International Conference on Mobile Ad Hoc and Sensor Systems, Dallas, TX, USA, 19–22 October 2015; pp. 416–424. [Google Scholar]
  10. Jeon, J.S.; Kong, Y.; Nam, Y.; Yim, K. An Indoor Positioning System Using Bluetooth RSSI with an Accelerometer and a Barometer on a Smartphone. In Proceedings of the 2015 10th International Conference on Broadband and Wireless Computing, Communication and Applications (BWCCA), Krakow, Poland, 4–6 November 2015; pp. 528–531. [Google Scholar]
  11. Ichikari, R.; Ruiz, L.C.M.; Kourogi, M.; Kurata, T.; Kitagawa, T.; Yoshii, S. Indoor floor-level detection by collectively decomposing factors of atmospheric pressure. In Proceedings of the 2015 International Conference on Indoor Positioning and Indoor Navigation (IPIN), Banff, AB, Canada, 13–16 October 2015; pp. 1–11. [Google Scholar]
  12. Xu, Z.; Wei, J.; Zhu, J.; Yang, W. A robust floor localization method using inertial and barometer measurements. In Proceedings of the 2017 International Conference on Indoor Positioning and Indoor Navigation (IPIN), Sapporo, Japan, 18–21 September 2017; pp. 1–8. [Google Scholar]
  13. Yi, C.; Choi, W.; Liu, L.; Jeon, Y. Cloud-Based Positioning Method with Visualized Signal Images. In Proceedings of the 2017 IEEE 10th International Conference on Cloud Computing (CLOUD), Honolulu, CA, USA, 25–30 June 2017; pp. 122–129. [Google Scholar]
  14. Korea Meteorological Administration. Available online: https://data.kma.go.kr/data/grnd/selectAsosRltmList.do?pgmNo=36 (accessed on 14 May 2019).
  15. Averill, J.D.; Mileti, D.S.; Peacock, R.D.; Kuligowski, E.D.; Groner, N.; Proulx, G.; Reneke, P.A.; Nelson, H.E. Occupant Behavior, Egress, and Emergency Communication. Federal Building and Fire Safety Investigation of the World Trade Center Disaster; National Construction Safety Team Act Reports (NIST NCSTAR 1–7); NIST: Gaithersburg, MD, USA, 1 September 2005. [Google Scholar]
  16. McLachlan, G.; Krishnan, T. The EM Algorithm and Extensions; John Wiley & Sons: Hoboken, NJ, USA, 2007. [Google Scholar]

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.