Mobile Robot Positioning with 433-MHz Wireless Motes with Varying Transmission Powers and a Particle Filter

In wireless positioning systems, the transmitter's power is usually fixed. In this paper, we explore the use of varying transmission powers to increase the performance of a wireless localization system. To this extent, we have designed a robot positioning system based on wireless motes. Our motes use an inexpensive, low-power sub-1-GHz system-on-chip (CC1110) working in the 433-MHz ISM band. Our localization algorithm is based on a particle filter and infers the robot position by: (1) comparing the power received with the expected one; and (2) integrating the robot displacement. We demonstrate that the use of transmitters that vary their transmission power over time improves the performance of the wireless positioning system significantly, with respect to a system that uses fixed power transmitters. This opens the door for applications where the robot can localize itself actively by requesting the transmitters to change their power in real time.


Introduction
Mobile robot localization is the problem of determining the pose (position and orientation) of a robot relative to a map. This problem is one of the most important in mobile robotics, because most robotic tasks require knowledge of the robot pose [1]. Sonar sensors [2], cameras [3] and, above all, 2D laser range finders [1] mounted on the robot have been three popular choices to locate a robot indoors. Another alternative is to infer the robot position based on the characteristics of the signal received from wireless transmitters placed in the environment (wireless localization). There are a number of technologies that have been used for wireless localization [4][5][6], such as RFID, WiFi, Bluetooth, ZigBee, GSM or UWB.
Nevertheless, each sensor has limitations, and no sensor is applicable to all situations [7]. For instance, the 2D laser provides information that can lead to very accurate (sub-meter) localization estimates. However, 2D laser range finders suffer from several well-known issues [7,8]: perception limitations (e.g., they cannot detect glass walls), occlusion in crowded environments (e.g., when operating in a museum with people around the robot), inability to distinguish among similar areas (e.g., corridors), failures when dealing with changes in the environment, etc. Most of these issues are also common when using cameras [3,9]. On the other hand, other alternatives, such as wireless localization, cannot provide such a level of accuracy, but they are robust against the situations that we have mentioned before. For these reasons, in the past, we have solved the problem of mobile robot localization by fusing the information of a 2D laser rangefinder, a WiFi card and a magnetic compass [8]. The key idea is to increase the robustness and redundancy of localization systems by combining the information of sensors of different natures, which will fail in different situations. We have applied these techniques to a tour-guide robot that operates in challenging crowded environments [10], and the fusion of different sensors has proven to result in a very robust positioning algorithm.
Among the range of wireless positioning technologies available, WiFi positioning is the most popular. WiFi positioning aims to estimate the robot position from the signal power received from different WiFi access points (e.g., a high signal power level indicates that the robot is close to the corresponding AP). These transmitters are mostly commercial; therefore, they use similar transmission powers that cannot be modified. We consider that the use of transmitters that can vary their transmission power could lead to a number of benefits. On the one hand, each environment is different, and using a default transmission power may not be the most optimal solution. On the other, different parts of the environment or different situations might require different levels of accuracy and robustness and, therefore, different transmission powers. For instance, the signal attenuation of a high-power transmitter might not be noticeable in a small room, so it might not be possible to distinguish where the robot is within the room. On the contrary, a low-power transmitter might not be received outside a region close to it, so we could know whether the robot is within this region. Even more, different transmission powers lead to different signal propagations, which provide different information. Therefore, the use of transmitters with varying transmission power will increase the discrimination ability of the localization system. In the extreme, these transmission powers could be changed by the robot itself. This would allow the robot to discard localization hypotheses actively depending on different criteria: the quality of the current localization estimate, the task at hand, the part of the environment where the robot is, etc.
Taking this into account, in this paper, we will explore the use of wireless transmitters that are able to vary their transmission power. To this extent, we will use specifically designed wireless sensor nodes [11,12], also known as motes. We could have used other alternatives, such as commercial WiFi APs or Bluetooth beacons, but motes are a flexible and convenient solution for our purposes. Moreover, motes have several characteristics that make them very appealing for mobile robot applications: • Control over the software and hardware of the mote. This enables the adjustment of the transmission power, among other properties. • Communication capabilities. Motes can be used for communication among robots and environment elements. • Low power consumption. Motes usually consume much less power that their WiFi APs. What is more important, designers have full control over it. • Homogeneous hardware. It is known that different WiFi receptors have different reception properties, which constitute a challenge for wireless localization algorithms [13]. Having homogeneous hardware limits this phenomenon and simplifies the working conditions of the robots, which enhances the robustness and reduces the cost of design and deployment. • Several frequency bands. This might be interesting if we want to avoid interferences with existing systems (such as WiFi networks) or to comply with the radiation policies of the application environment (e.g., in hospitals or industrial plants).
We have designed motes that operate in the 433-MHz band. These motes can be produced for less than 15e each, allow the modification of several transmission parameters and have a very small power consumption (average current lower than 0.1 mA @ 3 VDCin real operation). In a typical setting, several motes are deployed in the environment, and one mote is placed on board each robot. The motes placed in the environment transmit information packets periodically, and the mote on board the robot measures the signal power received and estimates the robot position.
In our system, to estimate the robot position, we will use a particle filter [1], a state-of-the-art algorithm typically used in mobile robot localization. This method maintains a probabilistic estimate of the robot position, which evolves based on the robot movement and the sensor observations. This has shown to be superior over methods that estimate a new robot position when new data arrives, without taking into account previous estimates [14]. Other probabilistic algorithms, such as Kalman filters and their most popular variants [1], were considered, as well. However, they represent the state (pose of the robot in our case) using a Gaussian random variable, while particle filters can deal with arbitrary probabilistic representations. This allows us to maintain several localization estimates simultaneously, which is very useful when sensor readings are not sufficiently discriminative to estimate a unique position. Moreover, with particle filters, the probabilistic mapping between sensor measurements and position candidates can follow any probabilistic distribution. This provides us with great flexibility when modeling the localization sensors.
We would like to point out that our objective is not to compare motes against WiFi localization, nor to suggest a new positioning algorithm. Instead, our objective and main contribution is to test whether the use of varying transmission powers increases the quality of a robot positioning system. This is an issue that has not been rigorously addressed in the past. First of all, we compare mote-based localization and WiFi-based localization using three different commercial WiFi receivers. This analysis shows that, when using fixed power transmitters, there are no differences among the performances of both systems. Then, we perform an experimental comparison among different fixed transmission powers for wireless localization. With this analysis, we demonstrate that different transmission powers lead to different performances, which indicates the importance of this parameter. Finally, we perform an experimental analysis where our motes change their transmission power periodically. With this analysis, we show that the use of varying transmission powers tends to increase the performance of wireless positioning systems.
The rest of the paper is organized as follows. Section 2 contains a review of the related work, including other positioning systems, techniques and algorithms. Section 3 describes the hardware and the software of the motes. Section 4 describes the localization algorithm based on particle filters. Section 5 describes the observation model proposed for the motes and the methodology followed to capture the calibration data and to calibrate this model. Finally, Section 6 contains the experimental results.

Related Work
Most of the positioning works with motes have been devoted to the localization of the static motes that form the sensor network [15,16]. There have been a few attempts to use motes in person [17] and robot positioning applications [18,19], but the examples are scarce. However, motes are closely related to other wireless technologies used in indoor positioning [4][5][6], such as systems based on WiFi, RFID, UWB, Bluetooth, TV or GSM. Therefore, knowing the techniques that have been applied with these technologies can be useful to construct an indoor positioning system based on motes.
Among the wireless positioning alternatives, WiFi positioning has been the most popular alternative by far. WiFi localization is usually based on fingerprinting [14,20]. Fingerprinting refers to techniques that: (1) at the calibration stage, collect features or fingerprints of the wireless signal and the location where they were measured to build a radio map; and (2) at the use stage, estimate the position of the receptor by matching online measurements with the radio map. Usually, RSSI (received signal strength indication) features are used, which are related to the signal power received from the access points.
There are two basic kinds of radio maps that can be constructed with fingerprinting techniques: model-based and empirical maps [20]. Model-based maps are defined by a set of parameters that specify the characteristics of the environment (e.g., walls, materials, etc.) and/or the characteristics of the signal propagation. These parameters are usually adjusted using calibration data. On the other hand, empirical methods (which tend to achieve better results [21,22]), work directly with the fingerprints to build radio maps. There are two kinds of empirical maps: deterministic and probabilistic maps [20]. Deterministic maps assign a single value to each position of the map, such as a fingerprint in that position, or an average of the closest fingerprints. The most important drawback of these maps is that a single value cannot capture the random nature of wireless signals. As a solution, probabilistic maps characterize the wireless signal at each position using probability distributions [14] (e.g., Gaussian, log-normal, Weibull, etc.). In this paper, we will construct probabilistic maps using the Gaussian process regression technique [23], which is able to estimate the average and typical deviation RSSI values at every map position.
On the other hand, almost any algorithm from the fields of machine learning and estimation could be used as a position estimation method. Usually, estimation methods are divided into two groups [14,20]: deterministic and probabilistic. Deterministic methods estimate the location of the receptor directly from the value of the measurements received. Techniques, such as artificial neural networks [24,25], support vector machines [8,26] and nearest neighbors and their variants [14,21,27], have been used to implement deterministic localization techniques. On the other hand, probabilistic methods estimate the position of the device as part of a random process. Usually, they integrate the measurements sequentially and exploit information about the movement of the device or about the topology of the environment. It has been shown that probabilistic techniques tend to have better results than deterministic ones [14]. Probabilistic methods are usually based on Bayesian inference [14], hidden Markov models [28] or particle filters [8,29].
Probabilistic techniques maintain a probabilistic model of the state of a system (e.g., robot), which evolves over time and is periodically observed by a sensor (or sensors). From all of the probabilistic estimation algorithms, Bayesian filtering approaches, such as Kalman filters and particle filters, are by far the most popular. Kalman filters work well when [1]: (1) the robot motion is linear; (2) the motion and sensor noises are white, Gaussian and can be modeled accurately; (3) there is an explicit and unimodal mapping (observation model) between states and observations; and (4) the best estimate of the state is unique (unimodal probability distribution over the state space). Some of these conditions do not hold in the context of robot localization. For instance, the robot movement is usually non-linear, and in practice, it may be hard to model the observation models and their noises explicitly using linear Gaussian models. Above all, observation models and, therefore, state probability distributions are rarely unimodal.
Particle filters are a powerful, yet efficient alternative to Kalman filters. Particle filters do not make any of the previous assumptions: they work with non-linear non-Gaussian systems with multi-modal probability distributions, where there is no explicit mapping between sensor observations and system states. Moreover, particle filters are very robust, even if the system and sensor noises are poorly estimated. For these reasons, particle filters have been a popular approach to solve the problem of robot localization [1].

Motes Description
We have developed a prototype of a mote network using a CC1110 SoC (Figure 1a). These CC1110 combine an industry standard-enhanced 8051 MCU and an excellent performance RF transceiver CC1101. Our motes operate at 3 V and consume less than 10 uA in sleep mode and 34 mA when transmitting at 10 dBm (maximum power). Therefore, they consume approximately 0.1 W in the worst case. Just to give a comparison, we have measured that the power consumption of a commercial router (Linksys WAG200G) is 4.5 W, even when it is not transmitting information. Every mote is powered by two AAA batteries with an estimated battery life of several months (assuming a 2-ms data burst every 1 s at maximum transmission power, 10 dBm). We have programmed the motes to operate at a 10-kbps data rate, using GFSKmodulation in the 433-MHz ISM band with 19 kHz of deviation and 100 kHz of RXbandwidth filters.
We have equipped each mote with a 1.8-dBimonopole antenna from MaxStream ( Figure 1a). The radiation pattern of this antenna is illustrated in Figure 1b. In the azimuth radiation graph, we observe that the antenna radiates equally in all directions of the plane parallel to the ground. We will estimate the position of the robot in this plane (2D robot localization). In the elevation radiation graph, we observe that the antenna also radiates in directions that are not parallel to the ground. Therefore, in principle, the motes could be used to estimate the attitude of a receiver. For instance, they could distinguish among different floors or the attitude of a drone, although this goes beyond the scope of this paper. Moreover, in this last case, other sensors (e.g., sonar sensors) could provide higher precision, because indoor ceilings are rarely high, and the attenuation from the ground to the ceiling would not be perceivable.  Our motes can be used both for communication and localization purposes, but in this paper, we will focus on the latter. In this regard, we have programmed some of the motes to send data packages periodically (transmitter motes). The data sent in the packages indicate the output power at which the packages are transmitted and the ID of the transmitting mote. On the other hand, the receiver motes were programmed to receive these packages and to measure the power of the signal received. These motes are placed on board the robot.

Localization Algorithm
In this section, we will present the particle filter algorithm, a well-known localization algorithm that can be used both for localization with WiFi and motes. In essence, this algorithm aims to estimate, at every instant t, the pose of the robot (state) s t = (x t , y t , θ t ) with respect to a map. Here, (x t , y t ) represents the position in Cartesian coordinates and θ t the orientation. This is done based on: (1) perceptual information z t ; and (2) control data u t . In our case, z t represents the signal power received by the robot from the motes placed in the environment and u t the robot movement as provided by odometry encoders. In addition, we will estimate Σ t (s) (the covariance of s t ). In order to accomplish our goal, our system iterates over a two-step process:

Recursive Bayes Filtering to Estimate the Pose Probability Distribution
We will use the Bayesian filtering approach to estimate the pose of the robot. Under this approach, the belief distribution is the posterior probability density function of the pose based on all of the available information. This information consists of: (1) the set of actions taken by the robot u t:1 = {u t , u t−1 , ..., u 1 }; and (2) the set of received sensor measurements z t: Equation (1) requires storing all of the information received and processing it as a batch when new data becomes available. Instead, a recursive filter is a much more convenient solution, since it allows processing the received data sequentially and discarding it after that. This filter can be derived using the Bayes rule [1]: and the law of total probability [1]: Furthermore, it is common to use the Markov assumption [1], which states that past and future data are independent if one knows the current state (pose). Therefore, provided the current state, past states or data are not relevant to future predictions. In this case, the knowledge of s t−1 and u t suffices to predict s t : Similarly, the knowledge of s t is enough to predict z t : Therefore, Equation (3) can be rewritten as: This is the general form of the recursive Bayes filter, represented in Figure 2. The first belief distribution bel(s 0 ) can be initialized randomly. Then, the filter performs iteratively in two stages: prediction and update.

Prediction
This stage predicts a new belief distributionb el(s t ) of the pose of the robot from bel(s t−1 ), considering the current robot movement The term p(s t |s t−1 , u t ) is called the motion model of the robot. It describes, from a probabilistic perspective, the evolution of the pose when only the actions taken by the robot are considered. This model depends on the specific kinematics of the robot (i.e., how much its position will evolve considering the angular and linear velocities performed).

Update
The update stage uses the latest sensor measurements z t to correct the belief distribution previously predictedb el(s t ), producing the true posterior distribution bel(s t ): The function p(z t |s t ) is called the observation model: it specifies the probability of receiving a certain measurement z t provided that the robot is in a certain pose s t . In our case, it represents the probability of receiving a certain vector of signal powers, when the robot is at pose s t . This vector of signal power is where n z t is the number of transmitters available at time t and z i t is the power in dBms of the i-th wireless transmitter at time t. Therefore, p(z t |s t ) is a joint probability function, which is hard to estimate in practice (especially when the number of transmitters is high). Instead, we can assume that the transmitters are conditionally independent given an arbitrary pose s: where p(z k t |s) represents the probability that the robot receives a signal power z k t from the k-th transmitter, assuming that the robot is at pose s. In our experience, this approximation is not robust, because it depends too much on the output of each individual function p(z k t |s). This is because the combination is a product of probabilities, so even if most functions agree on a certain pose, a single function that has a value near zero around that pose will cause the product to fall close to zero. This is represented in Figure 3, where even if most models p(z k t |s) would predict a position around s ≈ 0 (probably correctly), a single model (p(z 5 t |s)) is enough to distort the prediction p(z t |s) so that the maximum falls at the intersection between all of the distributions (probably incorrect). This represents an issue, because even small noises on the power received from the motes can have a big impact on the robustness of the predictions. In our experience, a simple voting scheme can be a much more robust solution: The underlying idea is that each individual model can contribute to the final prediction, but no model should have such an influence as in Equation (9). Essentially, Equation (10) solves this problem by aggregating the individual probabilities. This is represented in Figure 3, where the maximum value of p(z t |s) is achieved where most p(z k t |s) achieve their respective maximum (where most distributions agree), which is probably the correct prediction. The resultant distribution is therefore less affected by individual fluctuations. Taking this into account, we can rewrite Equation (8) as: Equation (8) correctsb el(s t ) based on the similarity between z t (power received from the transmitters at time t) and the power expected to be received at each pose s t . Under this approach, the most probable poses will be those with the highest similarity between expected and received signal power. We will explain in Section 5 how we obtain the observation model of each transmitter.

Implementation of the Recursive Bayes Filtering with Particle Filters
It is not straightforward to compute bel(s t ); therefore, approximations, such as the sequential importance sampling (SIS) algorithm (also known as particle filter) [1,[30][31][32], are used in practice. This algorithm implements the recursive Bayesian filter described above using sequential Monte Carlo simulations. This method assumes that bel(s t ) can be represented by a set of n p samples, usually called particles. The sample set will be represented as .., n p }} , where s i t is the pose of the sample and ω i t a weight associated to the sample (the sum of the weights must add up to one). Taking this into account, the bel(s t ) function will be represented as: where δ(s i t − s t ) is Dirac's delta function centered at s i t . Note that the more weight the particle has, the more likely its pose is.
The particle filter performs as follows. First of all, a set of particles P 0 is generated with random poses s i 0 and equal weights ω i 0 . Then, the algorithm iterates over the following steps: 1. Prediction: Every time the robot moves (u t ), the algorithm samples a new pose s i t for each particle taking into account the robot motion model: This can be seen as a displacement u t of each particle. To accommodate the error of the odometry of the robot, we add some random noise in position and orientation [1]. 2. Update: Then, the weight of each particle is updated taking into account the latest measurements z t : Note that each particle integrates the past sensor information (using the previous weight) and the fusion of the current sensor information. After the update step, the set of weights is normalized.

Resampling
After a while, all of the particles, except one, will have negligible weights. This is known as the sample depletion phenomenon [32,33]. The degree of depletion can be defined as the effective number of effective particles [32,33]: When all of the weights are equal, we have the maximum number of effective particles (N ef f = n p ), and therefore, the lowest degree of depletion. Conversely, when only one particle accumulates all of the weight, we have the lowest number of effective particles (N ef f = 1) and the highest degree of depletion.
The depletion phenomenon can be corrected by performing a resampling step when the number of effective particles falls below a certain threshold value (e.g., 2 3 n p ). This step consists of the construction of a new set of particles from the current one. First, we take n nr particles from the current set with probability proportional to their weight using the low variance resampling technique [1] (we may repeat particles). Then, we generate a variable number n r of random particles, such that n nr + n r = n p .
The generation of random particles allows the algorithm to recover when it converges erroneously to a wrong pose. In order to compute n r , we keep a long-term average ω l t and a short-term average ω s t of the weight of the particle set: where 0 < α l << α s < 1. The ratio ω s t /ω l t estimates whether the quality of the particle set is increasing (increasing ratio) or decreasing (decreasing ratio). Therefore, the more this ratio decreases, the more random particles we generate.

Pose Estimation
At this point, we have computed bel(s t ), and we need to estimate the most likely pose s t : Since we are using the particle filtering approach, we have to estimate this pose from the particle set P t . A popular approach is to estimate this pose as the weighted mean over all the particles [1]. However, in practice, this might not give good results (e.g., when we have two or more bulks of particles in different positions, it will estimate a position between the sets).
To solve these issues, we propose to use a clustering-based process. Since most particles will concentrate in a few regions (the most likely regions), we should be able to detect clusters of particles (pose hypotheses) and select one of them. To this extent, we perform the following two-step process: 1. Hypothesis generation: First of all, we use agglomerate clustering [34] to group the particles into clusters. Each particle will be assigned to its closest cluster, provided that the distance between the particle and the cluster centroid is lower than a threshold distance in position dist th−xy and in orientation dist th−θ . Otherwise, the particle will create a new cluster. Each cluster i can be interpreted as a hypothesis about the position of the robot. We will represent each hypothesis as where Ω i t is the total weight of the particles contained in the cluster i, µ i t is the average pose of the particles of the cluster and Σ i t is their covariance matrix. The influence of each particle on these two statistics (mean and covariance) is proportional to its weight. 2. Hypothesis selection: We will select the hypothesis that accumulates more weight, provided that this accumulated weight exceeds a certain threshold: Ω i t > Ω th (Ω th ∈ [0.5, 1]). Then, the robot pose s t will be µ i t , and the covariance Σ t (s) will be Σ i t . In the next step, this hypothesis will be chosen again if Ω i t > 1 − Ω th . This increases the stability of the hypothesis selection.

Observation Model for Wireless Localization
We have explained that the observation model p(z t |s) represents the probability of receiving a certain measurement z t provided that the robot is in a certain pose s. We have seen that in order to compute the observation model for the network of transmitters, we need to compute the model of each transmitter individually (p(z k t |s) ∀k ∈ {1, . . . , n z t }). There are many approaches to construct observation models [1], but a common one is to express them as the similarity between the measurement received z k t and the measurement expected to be received at each positionẑ s .
The expected measurementẑ s can be computed using regression analysis. Regression analysis aims at estimating the relationships among variables: in this case, among the robot position and the signal power of each transmitter at that position. This relationship can be learned from training data using a wide range of regression algorithms, from which we have chosen Gaussian process (GP) regression [23].

Learning Observation Models Using Gaussian Process Regression
GP regression [23] has already been used with great success to build probabilistic radio maps [35,36]. Gaussian processes are a supervised learning technique; therefore, they can learn the prediction function (the map) from a training dataset. Applied to the problem of mapping the strength of a wireless signal, GP regression gives us the average and typical deviation values at every map position. Duvallet et al. described several of their advantages with respect to other techniques [35]. First, GPs are non-parametric, so they do not require a regression model to fit the data. Second, both linear and non-linear models may emerge from the regression (whichever fits the data best). Third, GPs are continuous, meaning that: (1) training points do not need to be discretized; (2) training points do not have to be gathered at regularly-spaced intervals; and (3) predictions can be generated for any point in the environment. Finally, contrary to other alternatives, such as -SVR [37], GPs correctly handle uncertainty in both the process and the estimation and naturally provide probabilistic estimations. We would like to add to this list that GPs are especially suited to solve 2D spatial regression problems, because of the use of a kernel function that can model the spatial correlation among nearby points in the environment. In addition, due to their probabilistic nature, GP regression techniques can be integrated naturally with probabilistic estimation algorithms [35,36].
As any regression technique, GP regression attempts to predict the output of a system for any arbitrary input, where outputs and inputs are continuous variables. Gaussian processes learn the prediction function from a training dataset D = {(d i in , d i out ) | i ∈ {1, ..., n}}, which contains n samples of inputs d i in and their corresponding outputs d i out . GP regression assumes that the training set is generated by a process that fulfills: where f is the function that defines the system and is additive Gaussian noise with zero mean and variance σ 2 n . In order to learn this function, GPs relies on a covariance function kernel k(d p in , d q in ) that specifies the correlation among inputs. The idea behind this function is that input points that are close to each other are likely to have similar output values. There are many choices for this kernel [23], but in this paper, we have used the squared exponential kernel [35]: where σ 2 f is the signal variation and L is a diagonal matrix whose elements are length scale parameters that determine the strength of correlation among inputs. This kernel k(d p in , d q in ), captured for every pair of points of the dataset, is a matrix K. Moreover, we will represent as k * the vector of covariances between an arbitrary input d * in and the training inputs in D in . GP regression does not compute the function f directly. Instead, it defines a distribution of probability over functions that aim at explaining the training data. For any arbitrary input point d * in , the posterior probability distribution over these functions will be [23]: That is, for any input d * in , GP regression predicts a normal distribution centered in µ * (most probable output), with a typical deviation of σ * (that models both the data noise and the uncertainty of the prediction). All of the parameters of the GP regression can be learned from training data by maximizing the log marginal likelihood of the observations conditioned on the parameters [23].
In our case, we will have a training dataset for each transmitter k. This training dataset will be Provided these functions, the observation model that we will use for each transmitter is: where λ is a parameter that scales the typical deviation estimated by the GP regression. Therefore, it modifies the confidence that we have in the sensor model (the greater λ, the lower the confidence and the higher the tolerance towards noise). With this in mind, the observation model when using all of the transmitters (Equation (10)) becomes: Figure 5 shows two examples of this likelihood distribution when the robot is at two different positions. Note that in both cases, the distribution is multi-modal, but there is usually an area that concentrates most of the likelihood.

Collection of Calibration Data and Training of Observation Models in Practice
In order to train the observation models, we must: (1) capture a number of measurements at different points of the environment (calibration data); and (2) build the training sets. These last steps require us to relate each measurement with the position where it was measured. There exists a number of alternatives to accomplish this. For instance, there exist systems that provide the position of the robot at every instant (e.g., external infrared cameras for 3D marker tracking, such as Tracking Tools from Natural Point). However, these systems are extremely expensive and adequate only for small spaces. As an alternative, a user may indicate where each measurement took place, but this method has some serious drawbacks: it is tedious, time consuming and error prone. In order to overcome these issues, we follow the procedure depicted in Figure 6: 1. Collect the calibration data by moving the robot around the environment. This data includes: laser data, odometry data and signal power data captured by the wireless receiver. The user may move the robot either: (1) with a joystick or; (2) with our person-following behavior [38] with gesture-based interaction and voice feedback [39]. We have seen that non-expert users are able to perform this step successfully using either of each method. 2. Process the collected data off-line.
(a) Build a map of the environment. This map will only be used as a frame of reference for the calibration data and for the estimations of the localization algorithm. To construct this map, we use an SLAM algorithm (simultaneous localization and mapping) with laser and odometry information. (b) Compute the trajectory followed by the robot and associate each pose with its timestamp (x t , y t , θ t ). Figure 7 contains two examples of maps and the trajectory followed by the robot during the calibration stage.

Experimental Results
The purpose of the experiments is to compare WiFi localization with localization with motes. We will perform two different experiments: 1. Analysis of the performance of localization with motes and WiFi localization using a fixed transmission power in both cases: We want to compare their performance to see whether localization with motes could be used in the context of mobile robot localization. It is known that the performance of WiFi localization depends on the quality of the WiFi card placed on board the robot [13]. Therefore, to obtain a more reliable result, we will perform this experiment by using three different WiFi cards. 2. Analysis of the performance of the localization with motes when using different transmission powers: We will also explore if using motes that change their transmission power dynamically increases the performance of the localization algorithm. This is important, because if this is the case, robots could change the transmission power of motes to achieve a better performance (e.g., active localization, where the robot may ask the motes to modify the transmission power in order to validate or reject localization hypotheses).
Both experiments will be performed using the same dataset, obtained by the process that we will describe in the following section.

Setup and Methodology
We have performed experiments on two different floors of the CITIUS research center (Centro Singular de Investigación en Tecnoloxías da Información da Universidade de Santiago de Compostela, Spain). We have deployed 6 WiFi access points and 6 motes on each floor (each mote was placed near an AP, to achieve a fair comparison). The WiFi APs are TP-Link TD-W8968 with EIRP < 20 dBm (equivalent isotropically-radiated power). These APs have 2 dipole antennas of 5 dBi each, while each mote has a 1.8-dBi monopole antenna (Section 3). The radiation pattern of each WiFi antenna in the azimuth plane (the one relevant in our system) is similar to the pattern of each mote antenna (Figure 1). On the other hand, we have used a Pioneer P3DX robot equipped with a SICK-LMS100 laser, 1 mote (receiver) and 3 different commercial WiFi receiver cards. To collect the experimental data, we have moved the robot around the environment with a joystick. During this process, the robot recorded the information received from the odometry encoders, the laser and the signal power received by the mote and the WiFi cards. Table 1 shows a summary of the data collected. Note that one of our experiments involve changing the power transmission of the motes. In principle, we would have to repeat the data capture stage as many times as the number of transmission powers that we would like to explore (re-configuring the motes every time). Instead, we have programmed the transmission motes to send a new package of data each 250 ms. Each package is transmitted with a different power: −40 dBm, −30 dBm, −20 dBm, −10 dBm, 0 dBm, 5 dBm, 7 dBm and 10 dBm. Therefore, the first package is transmitted at −40 dBm; after 250 ms, a new package is transmitted at −30 dBm, and so on. The cycle is repeated after 2 s, after the package at 10 dBm is transmitted. On the other hand, the robot's mote receives this packages, and every 2 s, it sends to the robot a vector containing the signal power of the last packages received. This way, to analyze the performance under a certain transmission power, we just have to discard all packages except those transmitted at the power that we want to analyze. Moreover, these same data can be used to analyze the performance when the transmission power changes periodically.
After the experimental data were captured, we divided them into two subsets: • Training set: This represents approximately the first 33% of the dataset. We used this set to construct the map (with the laser and odometry information) and to calibrate the observation models of the mote and the 3 WiFi cards (with the signal power received by each of them). • Testing sets: The remainder of the dataset was divided randomly into 20 parts of 120 s each. Each part was used to test the performance of our localization algorithm.
In each experiment, we execute the algorithm using each of the test sets (20 times each, to carry out statistical analyses). In each execution, the robot starts with no knowledge about its pose (global localization), until the algorithm converges to a pose estimate (tracking). The localization algorithm estimates the trajectory followed by the robot using the robot odometry and the signal power received from the WiFi APs or motes (depending on the case). Finally, we compare this trajectory with the real trajectory (ground-truth), in order to evaluate: 1. Error in position and orientation (e xy and e θ ): the difference between the pose estimated by the algorithm and the ground-truth (the lower the better). 2. Convergence ratio (%t loc ): the percentage of time that the algorithm provides an estimation of the pose (the higher the better). We consider that the algorithm has converged when the clustering step discovers a sufficiently important cluster of particles (Section 4.3).
We have always used the following parameters: n p = 2000 particles, α s = 0.01, α f = 0.1, dist th−xy = 5 m, dist th−θ = π/2, Ω th = 3/4. We have executed our algorithm with a period of 333 ms (control cycle), enough to ensure the correct performance of the tasks carried out by our robot (e.g., planning and navigation). The execution of the localization algorithm takes approximately 15 ms of the control cycle. This indicates that our algorithm can work in real time.

Ground-Truth Collection
We need to know the trajectory followed by the robot in each test set. This trajectory is called the ground-truth. In order to collect it, we have followed a procedure inspired in other works [40]. First of all, an expert initializes the localization algorithm with the initial true pose of the robot during the trajectory, which is known. Then, the algorithm processes the laser and odometry information and generates the trajectory followed by the robot. Finally, each pose of the trajectory is either accepted or rejected by the expert, who compares the real laser signature with the signature expected from that pose (visual inspection).
We have evaluated the accuracy of the ground-truth obtained by this procedure. We have moved the robot around the environment, forcing its trajectory to pass over 8 checkpoints. Then, we measured the real robot pose at each checkpoint. Finally, we have compared each real pose with the corresponding pose estimated by the ground-truth construction procedure. We have obtained a median difference of 0.254 m in position and 0.033 rad in orientation. We are aware that the use of a high precision localization system would have been a better option to build the ground-truth. However, we did not have access to a system like this that is able to work in such big areas. Moreover, we believe that the results obtained are adequate for the purposes of this paper.

Results: Performance of Motes vs. WiFi at a Fixed Transmission Power
In this experiment, we have analyzed the performance of the localization algorithm using motes and WiFi APs at a fixed transmission power (we have used the same power for motes and WiFi APs). As we have explained, the performance of WiFi localization depends on the quality of the WiFi card placed on board the robot, so we will use three different WiFi cards in this experiment. Figure 8 shows the radio maps of one floor, for each receiver. We can see that the radio maps depend greatly on the hardware of the receiver [13]: each radio map is different from the rest, not only between motes and WiFi, but among the three WiFi receivers, as well.   (27)). Therefore, it modifies the confidence that we have in the sensor model (the greater the λ, the lower the confidence and the higher the tolerance towards noise). We can draw the following conclusions: 1. Higher values of λ tend to give better results. On the one hand, this happens because particle filters work better when they are conservative about the confidence in the observation models [1]. On the other hand, the training data were captured during a limited amount of time under very stable circumstances. Therefore, any regression algorithm will tend to over-fit, but the λ parameter helps to mitigate this problem. However, the value of the parameter cannot be arbitrarily large: the larger λ, the less information the observation model provides. Results show that the best trade-off is a value of λ between three and four. 2. WiFi localization results depend greatly on the hardware that we use: we have obtained very different results with each WiFi receiver. 3. Performance results of localization with motes are at least as good as the best results of WiFi localization. Therefore, our proposal is just as valid as WiFi localization to be used for wireless robot localization.

Results: Varying the Transmission Power
In this experiment, we have compared the performance of the localization algorithm using: (1) motes with different transmission powers; (2) motes that change the transmission power periodically; and (3) the best WiFi receptor of the previous experiments, whose transmission power cannot be modified. In this case, we could only use four out of the six total transmitter motes, because the other two did not allow us to change the transmission power due to firmware restrictions. Obviously, we used only the four WiFi APs that were near the selected motes, to ensure a fair comparison.
Note that we did not have to repeat the data capture stage, because the motes were already sending a new package of data each 250 ms, each package with a different power (−40 dBm, −30 dBm, −20 dBm, −10 dBm, 0 dBm, 5 dBm, 7 dBm and 10 dBm). Therefore, to analyze the results with a certain fixed transmission power, we just have to discard all of the packages, except those transmitted with that power. Similarly, to analyze the results with a varying transmission power, we can consider that we have eight 'virtual' motes for every real mote (because each real mote transmits at eight different powers per cycle). Therefore, to analyze the performance when varying the transmission power, we have trained a total of 32 'virtual' observation models, and we have just integrated each mote package using the observation model of its corresponding 'virtual' mote. Figure 10 shows the performance results in this experiment, and Table 2 ranks the performance of each configuration. The experiments were performed using a value of λ = 4. We can draw the following conclusions: 1. The best configuration is always the one that uses varying transmission power, and the difference is significant when considering e xy and e θ . This suggests that the use of varying transmission powers provides useful information that improves the localization results. This opens the door for future improvements in the line of active localization. Under this paradigm, the robot would be able to modify the transmission power of the motes in order to discard localization hypotheses proactively. 2. The second best configuration is, in this case, the one obtained when using the WiFi card. This contradicts partially the results obtained in the previous section, where the motes performed just as well as the best WiFi card. Anyway, just as in the previous case, the results may vary depending on a number of factors: the number of APs, the distribution in the environment, environmental conditions, etc. 3. There is no significant difference among the different transmission powers analyzed, considering e xy and e θ . However, powers above 0 dBm perform better on the convergence rate results (%t loc ). This makes sense, because motes with low transmission power can only be received in the surroundings of the mote. Therefore, the algorithm will only converge when passing near one of them. We can extract two recommendations from these results. First of all, motes should use a transmission power of 0 dBm, which is the lowest one with the best results. Second, lower transmission powers might be used, as well (e.g., proximity-based localization), but a greater number of motes should be used. and (c) the WiFi card that performed better in the previous experiment (tagged as WiFi1). We have discarded the results obtained when using a transmission power of −40 dBm, because the algorithm did not converge most of the times. Table 2. Ranking of the second experiment according to different statistical measurements using the Friedman aligned ranks method [41] (p-value = 0.05). We highlight in boldface the winning configuration. We separate configurations with horizontal rows when there is a significant different among them (post hoc Holm test [41] with α = 0.05). These statistical tests were performed using the STAC web tool [42]. We have analyzed the performance of the algorithm using the motes with different transmission powers (tagged as −20 dBm, −10 dBm, 0 dBm, 5 dBm, 7 dBm and 10 dBm), with varying transmission power (tagged as 'all') and with the best WiFi card of the previous experiment (tagged as WiFi1). We have discarded the results obtained when using a transmission power of −40 dBm (because the algorithm did not converge most of the times) and −30 dBm (because the algorithm did not converge sometimes).
Ranking e xy e θ %tloc 1 (best) All All All

Conclusions and Future Work
In this paper, we have demonstrated that the use of transmitters with varying transmission powers can improve the performance of wireless positioning systems. We have proven this result with a wireless localization system for mobile robots. In particular, we have designed a system based on motes that operate in the 433-MHz band. The motes allow one to modify several transmission parameters and have a very small power consumption. We have presented the hardware and software design of the motes, and we have described how to integrate them with a localization algorithm based on particle filters.
The experimental results described in this paper show that the localization with motes is at least as good as WiFi localization. This shows that mote localization is a viable alternative to WiFi localization. Nevertheless, working with motes provides some interesting characteristics that make them very appealing: (1) control over the software and hardware of the mote; (2) homogeneous hardware; (3) full control of the communication capabilities; (4) low power consumption, etc. However, our objective is not to substitute WiFi localization systems; therefore, we believe that both technologies could even co-exist in a robotics application, in order to increase the redundancy of the system.
In addition, experimental results have shown that different transmission powers result in different performances. Particularly, the performance was optimum when using transmission powers above 0 dBm. Most importantly, we have analyzed the performance of the algorithm when using motes that vary their transmission power periodically. The results show that this configuration improves the results significantly with respect to any other configuration. This suggests that the use of varying transmission powers provides useful information that improves the localization results. This result is as valid for our motes as it is for other wireless technologies, provided that they allow the modification of the transmission power. This opens the door to explore new research lines, such as active localization, where the robot can proactively modify the power of the transmitters, in order to discard localization hypothesis actively.
In the future, we will use the mote system to provide communications among our robots and other intelligent elements, such as a network of intelligent cameras that we have developed [43,44]. In addition, we will further explore the use of patterns of varying transmission powers to improve the robot localization. Finally, we will explore the use of the motes in active localization strategies, where the robot will ask the motes to vary their power to improve the localization results.