Keywords

1 Introduction

Large amount of work on indoor system has been done using several techniques in the past, but most of the works calibrate the unknown constants once before the operation of the experiment and then utilizes the evaluated constant values for their complete operation [1, 3, 5, 9]. Despite the knowledge of constantly occurring subtle changes in the surrounding, the effect on the constants involved is neglected. In the present paper, we aim to update the involved constants regularly by an adversarial mechanism in the continuous domain of the constants and position coordinates.

Throughout the following text, the node whose position is to be evaluated is referred as Unknown node and the beacon nodes which emit ultrasonic signals and radiowave packet are referred as Reference nodes. The position of reference nodes is predetermined.

2 Background

2.1 Time-of-Arrival Technique

TOA (Time-of-Arrival) is a distance estimation technique. In this method, the distance between the Reference node and the Unknown node is calculated using transmission time of the signal and the speed of the signal as follows:

$$\begin{aligned} d_{TOA} = time \times speed \end{aligned}$$
(1)

where \(d_{TOA}\) is the distance between the Reference node and the Unknown node measured using TOA, time is the duration of time taken by signal propagation from Reference node to Unknown node and speed is the speed of propagation of the signal. In TOA based systems only one way propagation time is recorded [4].

2.2 Received Signal Strength Technique

RSS (Received Signal Strength) based methods are also distance estimation techniques based on signal attenuation. It performs better in absence of LOS (Line of Sight) channel, which is the case in practical implementations. The signal path loss due to propagation is used to calculate the distance using the following relation [6, 8]:

$$\begin{aligned} RSS(x = d) = - RSS(x = 1m) - 10 n\log _{10}(d) + \delta \end{aligned}$$
(2)
$$\begin{aligned} d_{RSS} = 10^{\frac{RSS(x = d) + A - \delta }{10 \cdot n}\ } \end{aligned}$$
(3)

where \(RSS(x = d)\) is RSS value at a d distance (in meters) from transmitter, A is RSS(x = 1m), \(d_{RSS}\) is the distance of Unknown node from the Reference node computed using RSS technique, n is the medium as well as location dependent signal propagation constant and \(\delta \) corresponds to attenuation due to obstacles.

2.3 Trilateration

Trilateration is a geometrical positioning technique. In this method, reference distances from three non-collinear points is used to calculate physical position (x and y coordinates) of unknown node in 2D Cartesian Plane as indicated in Fig. 1 (adjusted Reference nodes according to proposed system) and Eqs. (4) and (5) [5].

Fig. 1.
figure 1

Technique of trilateration adapted and used in the experiment (Red Circle - Reference Node, Green Pentagon - Unknown Node) (Color figure online)

$$\begin{aligned} x = \frac{d_{A}^2 + R^2 - d_{B}^2}{2R}\ \end{aligned}$$
(4)
$$\begin{aligned} y = \frac{d_{A}^2 + R^2 - d_{C}^2}{2R}\ \end{aligned}$$
(5)

where x and y are the respective coordinates in the assumed 2D plane, \(d_{A}\) is the distance of the Unknown node from Reference node A, \(d_{B}\) is the distance of the Unknown node from Reference node B, \(d_{C}\) is the distance of the Unknown node from Reference node C, R is the distance between Reference node A and Reference Node B (also Reference node A and Reference Node C).

2.4 Differential Evolution

Differential Evolution [7] is an optimization algorithm under evolutionary computation. Under the given set of constraints and optimization objective function, the values of decision variables can be calculated by iterative attempt to improve a candidate solution generated by the algorithm. This algorithm requires three parameters: NP - population size, F - a parameter to control the mutation, and CR - crossover probability. The procedure of this algorithm can be divided as: Initialization, Mutation, Crossover and Selection.

DE initializes a population P with individuals \(x_{i}\), where i \(\epsilon \) {1, 2,.., NP} and \(x_{i}\) being a t-dimensional vector. Mutation step in this algorithm is achieved by (6), that is to generate a mutant vector \(v_{i, G}\) for each population vector \(x_{i, G}\) where G corresponds to generation of the population.

$$\begin{aligned} v_{i, G + 1} = x_{r_1, G} + F (x_{r_2, G} - x_{r_3, G}) \end{aligned}$$
(6)

where \(r_1\), \(r_2\), \(r_3\) are random indices such that \(r_1\), \(r_2\), \(r_3\) \(\epsilon \) {1, 2,.., NP} and

Recombination of population is performed using Crossover operation. A uniform crossover in (7) involves combination of parent vector \(x_{i, G}\) and the mutant vector \(v_{i, G + 1}\) to yield trial vector \(u_{i, G + 1}\) according to following criteria:

$$\begin{aligned} u_{j, i, G + 1} = {\left\{ \begin{array}{ll} v_{j, i, G + 1} &{}\text {if } random(0,1) < CR \text { or } j == d_i\\ x_{j, i, G} &{}\text {otherwise} \end{array}\right. } \end{aligned}$$
(7)

where u is the trial vector, v is the mutant vector, j is dimension index and j \(\epsilon \) {1, 2,.., t} (t is the total number of dimensions or components in the individual population vector \(x_{i, G}\), G is the generation of the population, i is population index, random(0, 1) generates a float random number between 0 and 1, \(d_i\) \(\epsilon \) {1, 2,.., t} is a randomly chosen index. The selection strategy on each population element concludes the iteration. If \(f(u_{i, G + 1})\) < \(f(x_{i, G})\), then \(x_{i, G + 1}\) = \(u_{i, G + 1}\) otherwise \(x_{i, G}\), where f is the fitness or objective function.

3 Proposed System

The aim of the system is to predict the indoor location of Unknown node, by updating the constants involved in Eqs. (1) and (3) in real-time during the operation. Our proposed system consists of two components capable of measuring the distances which are employed to act as an adversary to each other. The first component is the technique corresponding to Time-of-Arrival (TOA) which uses ultrasonic signals to compute the duration of time of propagation. The second component is the technique using RSS (Received Signal Strength) of radiowave packets from Reference nodes.

3.1 RSS Value Stabilization

It is a very common problem to record highly fluctuating values of Received Signal Strength (RSS). However, the RSS values can be stabilized using the following update rule in (8), using a control factor \(\gamma \).

$$\begin{aligned} sRSS_{t} = \gamma \cdot sRSS_{t-1} + (1 - \gamma ) \cdot RSS_{t} \end{aligned}$$
(8)

where sRSS is the stabilized RSS value, \(RSS_{t}\) is the RSS value recorded from the communication module. (8) is applicable only in cases where the motion of Unknown node is continuous in the 2D plane domain and not abrupt.

3.2 Adversarial Optimization to Update Constants

The idea is to measure the distance of the Unknown node from Reference nodes A, B and C: \(d_{A}\), \(d_{B}\) and \(d_{C}\) using two techniques. The first technique being TOA, we record time duration from the point Unknown node requests an ultrasonic signal packet by radio communication to the point of arrival of ultrasonic signal at Unknown node. This evaluation is done for all the Reference nodes A, B and C, obtaining \(TOA_{A}\), \(TOA_{B}\), \(TOA_{C}\). The second technique of RSS is employed to the beacon packets coming from Reference nodes A, B and C to Unknown node, obtaining \(RSS_{A}\), \(RSS_{B}\), \(RSS_{C}\). These RSS values are stabilized using (8). Substituting these obtained values in the objective function \(f(A, \delta , n, c)\) for every Reference node, we run differential evolution to obtain optimal values of A, \(\delta \), n and c.

The objective function f is absolute value of the difference of distances calculated by two techniques (1) and (3) between the Reference node and the Unknown node, \(f = \big \vert {d_{k, RSS} - d_{k, TOA}}\big \vert \), where k \(\epsilon \) \( \{A, B, C\}\). This choice of objective function definition gives rise to adversarial nature in the proposed approach. The objective function f subject on \(A, \delta , n, c\) is as follows:

$$\begin{aligned} f(A, \delta , n, c) =\bigg \vert {\Big (10^{\frac{- (RSS(x = d) + A - \delta )}{10 \cdot n}\ }\Big ) - \big ( TOA \times c \big )}\bigg \vert \end{aligned}$$
(9)

Each individual of the population in Differential Evolution algorithm encodes A, \(\delta \), n, c in their inherent information. In this application, the values of A, \(\delta \), n, c are constrained to their respective ranges (\(\pm 10\)% of the constant value evaluated in the beginning of the experiment) due to physical phenomena.

3.3 Update of Position

The final aim of the system is to provide position coordinates of the Unknown node, with respect to assumed Cartesian plane as in Fig. 1. We have utilized the second component of the system to report final coordinates of the particular cycle. Using the new values of A, \(\delta \), n and the latest stabilized RSS values in (3), we compute \(d_{A}\), \(d_{B}\) and \(d_{C}\). Applying trilateration (4), (5) using these three distance values, we report the coordinates of Unknown node.

Error is calculated as the distance between estimated position coordinate (x,y) and real position coordinate (\(x_0\),\(y_0\)).

4 Experiment and Results

The experiment is conducted in an indoor environment with a predetermined 2D Cartesian plane of dimension 5 m \(\times \) 5 m. The Reference and Unknown nodes communicate via. ZigBee (IEEE 802.15.4-based suite of high-level communication protocols) [2]. Each node is equipped with ultrasonic transmitter/receiver. All the nodes are computationally powered by NXP JN5168 ZigBee microcontroller. The setup in case of Unknown node is mounted over a movable bot to fulfill the purpose of a movable node, whose position is determined in continuous manner. The experimental setup of the nodes is equivalent to the scheme in the Fig. 1.

Table 1. Performance Comparison

Due to limited computation power of JN 5168 microcontroller the differential evolution algorithm in the experiment has been executed on a population size (NP) of 10 & 20, and for 10 generations only. These parameters have been decided after establishing a suitable trade off between computation time and reliability of results. The experiment is conducted for 2 values of \(\gamma \) as 0.4 and 0.6 for RSS stabilization. \(\gamma \) = 0.6 for being more inertial towards the previous RSS values.

Table 1 compares our technique with naive RSS technique. The naive RSS technique employs constants evaluated once at the beginning of the experiment in the above described setup. It is evident from the comparison of Root Mean-Square Error of both the techniques that our technique is superior by employing update of parameter values in real-time. Further, our proposed techniques performs better for NP = 20 due to more exhaustive optimization.

5 Conclusion

An indoor positioning system which can update its functional parameters in real-time was successfully proposed and its performance was verified. Currently there is one disadvantage associated with the system, as it might not be very practical in its usecase but this paper successfully proposes a model which can update its parameters by an adversarial approach. Further work to replace or modify first component of TOA is required to improve this system for more practical purposes.