# A Single RF Emitter-Based Indoor Navigation Method for Autonomous Service Robots
## 4 RF-Based Target Localisation
### Enhancing Angle and Distance Estimation  
The main shortcoming of using a Received Signal Strength (RSS)-based approach is that RSS is very susceptible to multipath effects that can cause highly fluctuating and noisy readings. The situation is further exacerbated when the source and/or emitter are moving. Therefore, we cannot use the raw instantaneous RSS values and should filter out as much noise as possible in order to maintain a reasonable level of accuracy while achieving real-time processing. Since we have a mobile platform, we can take advantage of the historical values to process data points collected at different positions, minimising the effect of localised noise and other variations in RSS. By combining the information collected at different positions, the accuracy can be improved by attempting to isolate the underlying true signal which should be consistent at different positions. This also reduces the likelihood of local optima causing the system to move in the wrong direction. There are multiple possible methods of filtering the signal for estimating the true position of the emitter. The most basic method would be simple averaging; however, this does not take the movement of the robot into account, so it would be less accurate [35]. Due to the nature of RSS, uncertainty will be inherently high, so we have used a Bayesian approach. One of the most common Bayesian approaches for localisation is the Kalman filter and its variations [36]. A Kalman filter makes predictions about a number of possible future states based on the current state, then updates the probabilities of these predictions based on the sensor readings at that future state [37]. An alternative to a Kalman filter is a particle filter [36]. When used in localisation, a particle filter simulates a number of possible points in the environment, each with a position and velocity. Each particle is weighted based on the probability that it is the true point. Low probability particles are removed, and the remaining particles should converge on the true point. Both the Kalman filter and particle filter determine the probability of each possible state, given the sensor readings based on [PERSON] theorem [38]:  
\[P(A|B)=\frac{P(B|A)P(A)}{P(B)} \tag{5}\]  
[PERSON] theorem states that the probability of \(A\), given \(B\), is equal to the probability of \(B\), given \(A\), multiplied by the probability of \(A\), normalised by the probability of \(B\). In localisation, this is typically used as the probability of being at position \(A\), given sensor data \(B\). For linear Gaussian applications, the Kalman Filter produces an exact approximation of the true point. However, in non-Gaussian applications the Kalman filter is much less accurate [36], so for this application, the particle filter has been chosen. The particle filter steps are illustrated as the estimation enhancement part of the algorithm in Figure 4.  
At initialisation, \(N\) particles are generated based on the starting location of the robot in the global frame (i.e., the coordinate system offered by the path planning module). The particle positions are updated in each iteration according to a movement model with random acceleration [35] when there are new RSS measurements. The weight (i.e., the likelihood) of each resultant particle is calculated based on both distance and direction. The distance and direction of the emitter based on the instantaneous RSS readings are calculated using Equations (3) and (4), and the difference between these values and the position of the particle determines the weight elements using Equations (6) and (7), where \(r\) is the distance from the robot and \(\theta\) is the angle offset from the robot's current heading.