1. Introduction
Through-the-wall radar (TWR) has attracted considerable interest in recent years because of its increasing applications in rescue and military operations [
1,
2,
3,
4,
5]. There are two different processing techniques in TWR systems, coherent processing, and non-coherent processing. Most of the existing systems have employed coherent processing [
6,
7,
8,
9,
10,
11]; however, they require wide bandwidth and large aperture arrays [
1,
3]. They also need complex transmitter or receiver designs, which are expensive and typically cumbersome and not portable in emergencies. In contrast, non-coherent radar localization can be performed with simple hardware and allows flexible distributed deployment scenarios [
12,
13,
14,
15]. Non-coherent TWR uses the envelope of the received (reflected) signal, thus significantly relaxing the radar positioning and processing requirements and resulting in low-cost and low hardware complexity [
3].
In this paper, we consider using a non-coherent bi-static radar to estimate the locations of multiple targets that are behind a wall. In the multiple target (N targets) scenario, the receiver lacks knowledge about which measurement is associated with which target. As such, there is a measurement target association problem. We will consider a deployment scenario with one transmitter and multiple receivers (R receivers), at geographically different locations outside the wall, and, therefore, there are up to possible target-measurement association combinations.
In the single target case there is no association ambiguity, and the localization is typically done using the time taken, t, by the transmitted signal to reach the receivers, after getting reflected from the target, and having travelled a distance (range) r. For a given transmitter and receiver pair, there is a set of potential target locations that satisfy a given range measurement. These locations form an ellipse. The task is to find where the actual target lies on the ellipse. When there are two different transmitter-receiver pairs, the two ellipses intersect at the target location. Estimating the target location using ellipses is called ellipse cross localization (ECL). When transmitting through a wall, the transmitted signal takes a longer time to travel (through the wall) than in free space and the path is different, due to the dielectric constant of the wall. For a given transmitter-receiver pair, the target no longer lies on the same (free space) ellipse, however without knowing the exact dielectric constant of the wall, the wall thickness, the distance to the wall, and the angle of incidence, it is impossible to know where the actual ellipse is. Therefore, it is necessary to use the free space ellipse and accept that the intersection points will not locate the target exactly.
In [
4], an algorithm was proposed to estimate a single target location through a wall using ECL with a particular characterization of the influence of the wall thickness and its dielectric constant. In [
5], an algorithm was proposed based on a hyperbola cross localization (HCL) technique. However, both of these techniques required knowledge about the distance of the wall from the transmitter and receiver pair and the wall parameters, such as the wall thickness, material of the wall, etc., which are generally not available in real-time applications. In [
2], an Ellipse-Hyperbola-Localization approach was proposed based on ECL and HCL. The approach composed of two steps, rotation cross localization approach and determination of optimal range based on the statistical properties of the ECL and HCL in different target scene regions. However, as with [
4,
5], it is also restricted to localizing only a single target and cannot be directly extended to multiple target localization.
For multiple (
N) targets it is necessary to solve both the noise displacement and the measurement association problem together. At each receiver, there will be
N range measurements (assuming there are no lost measurements). As mentioned above, the receivers have a target-measurement association ambiguity, and, therefore, there is an associated target-ellipse association problem. When there are
R receivers, there will be up to
intersection points. Only
of these correspond to the actual targets. The first approach to solve the multi-target problem was proposed in [
16] in the free space scenario. However, it is a greedy algorithm and does not perform well in the through-the-wall scenario. The algorithm often fails to select
N target estimates in a through-the-wall scenario. The complexity of the algorithm increases exponentially with the number of receivers (number of measurements). In [
17], an algorithm was proposed to find multiple target locations by iteratively enforcing a set of constraints. It is limited by the fact that the complexity of the algorithm increases exponentially with an increase in measurements, and it also requires all the measurements to be available, i.e., no missing measurements.
An important practical limitation of all the ECL based approaches is that they require the receivers to be co-linear. When the receivers are not co-linear, the resulting ellipses will be rotated, and calculating the intersection points of two rotated ellipses is known to be a hard problem due to the cosine terms in the second order polynomial. As the number of receivers increases, the number of intersection points increases, giving the problem even greater computational complexity. This co-linear limitation is problematic for practical applications requiring accuracy in two dimensions, since the ellipse crossings are oblique for targets at broadside, as well as those in the axis of the array, and are hence sensitive to measurement errors. For practical applications with targets in two dimensions, a new non-ECL based approach is needed.
Adding to the challenge is that, even if it were possible to calculate all the crossing points for an ECL-based algorithm, it is then necessary to decide which points correspond to real targets (i.e., where the crossing ellipses are both from the same target), and which points have arisen from ellipses from two different targets. One approach would be to apply a clustering algorithm, however, since there is no known model for the statistical distribution of the locations of the ellipse intersection points in the multiple target scenario, there is no existing clustering algorithm that is suitable. Existing clustering algorithms, such as k-means, are based on the assumption that the data comes from a source with additive noise. As most of the intersection points in our case do not belong to any source (such as the intersection of two ellipses belonging to two different targets), existing clustering algorithms fail to estimate the target location.
In this paper, we propose a new multiple target location estimation algorithm consisting of a new (non-ECL) pre-processing step which we call Ellipse-Histogram (EH) pre-processing, coupled with a new clustering algorithm motivated by Newtonian gravity.
Our proposed EH pre-processing algorithm imposes a grid over the region of interest, and places a virtual particle of zero mass at the centre of each grid square. We then map the transmitter–receiver-pair ellipses onto the grid, by considering each ellipse, and increasing (by one unit) the mass of the particles in each grid-square that the ellipse passes through. Note that this operation is computationally much simpler than calculating the intersection of two ellipses. At the end of this process, each grid-square will, therefore, contain a particle with a mass equal to the number of ellipses that pass through the square. Any particles that remain with zero mass are removed.
Note that the particles in the grid-squares around the target locations will have high mass compared to other particles in non-target areas. The task then is to identify clusters of high-mass particles, corresponding to target locations. Our EH pre-processing algorithm is presented in detail in
Section 3.1.
At this point it would be possible to consider applying traditional clustering algorithms such as k-means clustering [
18], or fuzzy c-means clustering [
19]. However both of these algorithms operate under the assumption that each data point (particle in our case) belongs to one of the clusters, and is randomly perturbed from the cluster centroid according to a particular distribution. As mentioned previously, this is not the case for our particles.
An alternate clustering algorithm based on a universal gravity rule was proposed in [
20]. In that algorithm, initially the cluster-centroids were randomly chosen, and the data points were associated with the clusters based on Euclidean distance to the centroids. After association, a ‘force’ was calculated on the centroid, due to the particles that were associated with it. The centroid was then moved in the direction of the force. The distance each centroid moved was proportional to the magnitude of the force. After moving the centroids to the new location, the data points were reassociated with the updated centroids (based on the new locations). This process was repeated until there was no further movement of centroids. As with the other algorithms, a characteristic of this approach was that there was a significant influence on the centroids due to particles at non-target locations.
Our proposed approach to clustering (which forms the second part of our new proposed algorithm) is also inspired by gravitational ideas. We call it the gravity inspired clustering algorithm (GICA). A key difference is that our approach is not based on calculating cluster centroids. Instead, we calculate a Newtonian inspired force on each of the particles individually, and move each particle in the direction of the corresponding force. When particles collide, they combine into a single particle with the mass of the original two particles. This is analogous to the formation of stars in the early phase of the universe. Our proposed algorithm iteratively eliminates any particles that have low mass. We repeat this process iteratively until the particles have coalesced into clusters and there is no further movement in the particles. Our new algorithm is presented in detail in
Section 3.2.
We note that the overall complexity of our proposed approach is limited by the number of grid squares, and unlike other approaches, the complexity of ours does not increase exponentially with the number of measurements. Additionally, our proposed algorithm can be applied even when some of the measurements are missing, and works even when the receivers are not collinear. The proposed algorithm can also be applied when some of the measurements are false. False measurements arise when there is a strong reflection from objects that are not targets (i.e., not of interest, e.g., reflection from walls.).
2. System Model
The objective is to estimate the target locations that are behind a wall. In this paper, we assume the region of interest is a region of size 20 m by 15 m. We consider the bi-static radar with multiple receivers (
R). For example, when trying to map an office that is behind a wall, with a corridor in between, as shown in
Figure 1. Unlike many ray-tracing studies, we do not assume a straight line reflector for internal walls; instead, we model the practical situation where these walls are made of plasterboard, and the RF reflectors come from the vertical metal studs that support the walls and doors. Here, the targets are the metal studs, and the aim is to estimate the target location of the metal studs.
As shown in
Figure 1, the targets of interest are on one side of the wall, and the transmitter-receivers are on the other side. The receivers (
R) are placed as shown in
Figure 1. Receivers in this configuration produce better results compared to when they are collinear.
As mentioned previously, for a given transmitter and receiver pair, there is a set of potential target locations that satisfy a given range measurement. These locations form an ellipse. Let and be the transmitter and receiver locations for a specific pair, and let r be the range measurement from that pair. Then the ellipse is defined by the set of points, , such that .
When the receivers are in x and y directions as shown in
Figure 1, the ellipses that belong to the same target, and come from different receivers, intersect at greater angles resulting in better target estimation. When the receivers are collinear, the ellipses intersect at lower angles. Even with small measurement noise, the ellipses intersect at a location far from the true target location.
The measurements are taken as shown in
Figure 2. The transmitter and receivers move together, from one place to another. At intermediate points (
) the receivers collect range measurements. In practice, an example is when the transmitter and receivers are mounted on a vehicle moving from one point to another collecting measurements at intermediate locations. At each intermediate point
,
range measurements are collected (
N range measurements corresponding to
N targets at each receiver). As the range measurements are collected at
M intermediate points, there will be a total of
range measurements.
The range measurements in the presence of a wall is modeled as
=
+
[
2]. Where
represents the range measurement corresponding to the to the
ith target at
jth receiver when the transmitter and receivers are at intermediate location
in the presence of a wall. Where
’s are the i.i.d Gaussian random variables with mean
and variance
, and
represents the distance from the transmitter to the
ith target and from
ith target to the
jth receiver at the
intermediate location. In this paper, we do not use any specific knowledge about the wall parameters, and we use average values for the mean and standard deviation (
m and
m) [
2]. These are typical values, and details about the calculation of
and
can be found in [
2] as a function of frequency and bandwidth. Without loss of generality, mean
, is removed from all range measurements. Indeed, when the knowledge about the wall parameters, such as wall thickness, dielectric constant, etc., are known, the proposed algorithm works better. For a given transmitter and receiver pair, the set of all points that satisfy a range measurement is an ellipse. There are a total of
ellipses, as this is the number of range measurements.
Figure 3 shows the ellipses for the scenario in
Figure 1. The number of intermediate points are taken to be 5, i.e.,
(number of ellipses equals to
). From the figure, it can be seen that each ellipse intersects with other ellipses at various locations. Some of the intersection points represent target locations, i.e., intersection points corresponding to the ellipses from the same target and different receivers. Some of the intersection points are from the ellipses belonging to different targets. As noted, the number of intersection points from the ellipses arising from different targets is very large compared to the number of intersection points of ellipses belonging to the same target. From
Figure 3 we can see that it is hard to estimate the target locations. The aim is to find the target locations from the available range measurements information.
3. Proposed Algorithm
Our proposed algorithm consists of two elements. We first propose a pre-processing algorithm called Ellipse-Histogram (EH) pre-processing, which generates a set of particles. We then propose a new clustering algorithm inspired by Newtonian gravity to cluster the particles and hence identify the target locations. In the following subsections, we present our algorithm and describe it using pseudocode.
3.1. Ellipse-Histogram (EH) Pre-Processing
We propose a pre-processing approach to generate particles based on ellipses and histograms. The first pre-processing step is to impose a grid over the region of interest, (as shown in
Figure 4), and place a particle of zero mass at the centre of each grid square. In this paper, we use a grid square that is 7 cm by 7 cm (the choice of 7 cm is for the office-type scenario we are considering in this paper, but these values could be adjusted for other building scenarios of different scale). We then map the transmitter-receiver-pair ellipses onto the grid, by considering each ellipse, and increasing (by one unit) the mass of the particles in each grid-square that the ellipse passes through. At the end of this process, each grid-square will therefore contain a particle with a mass equal to the number of ellipses that pass through the square. The higher the particle’s mass, the higher the probability that particle location corresponds to the target location. In the algorithm, we represent the entire region with matrix
with the mass at grid location
stored in the element
.
Figure 5 is plotted for the scenario in
Figure 3 with height as the mass of the particle. From the figure, it can be observed that the particles around the target location have higher mass compared to non-target locations. However, there are many particles at non-target locations whose mass is relatively high. This makes the problem challenging, i.e., identifying the particles corresponding to the target locations among various local maximas.
The second pre-processing step is to remove particles that have less than the half the mass of the largest mass particle, thus restricting attention to the particles corresponding to the highest concentration on ellipses.
After this EH pre-processing, we then performed clustering via our novel gravity inspired algorithm, which we now present.
3.2. Gravity Inspired Clustering Algorithm (GICA)
We propose a new algorithm motivated by Newtonian gravity. We calculate a Newtonian inspired force on each of the particles from the Ellipse-Histogram pre-processing and move them in the direction of the force. We repeat this iteratively until the particles have coalesced into clusters and there is no further movement in the particles. This is in contrast to the other approaches that are based on iteratively estimating a known number of centroids.
First we select a non-zero mass particle randomly from the entire region. An important element of our approach is the definition of a box around the chosen particle. We define the box to be square, where the box-size is defined to be the distance from the particle to the edge of the box, as shown in
Figure 6. Within the box we will be calculating a Newtonian inspired force on the chosen particle from all the other particles within the box.
Our Newtonian Force is calculated in the procedure DISPLACEMENT in Algorithm 1. The position of the randomly selected particle is located at the grid coordinates and the masses of all the particles in the whole region is stored in the matrix . The size of the box is chosen randomly between two values and . The box size should not be too large or otherwise particles belonging to two different targets will merge into one. The box size should not be too small or else there will no other particle and no gravitational force will be felt. The minimum box size depends on the density of ellipse intersection points, which is heterogeneous across the entire region. For this reason, we use a random box size chosen between and . We choose and , where q is the minimum distance between any two targets, and l is the length of a grid square.
To calculate the force, we use the traditional Newtonian force formula, and propose to set the gravitational constant equal to one. In particular, the force on particle because of the particle is defined as . Where , and are the physical locations (measured in meters), and , and are the masses of the particles and , respectively. Similarly, we calculate the force from all the particles within the box. The resultant force on the selected particle is the vector addition of all the forces from individual particles.
In the procedure DISPLACEMENT, the double loop looks at all the grid squares (each which may contain a particle) inside the given box. The box is cropped so that we only look at the part of the box that lies in the rectangular region of interest where targets can occur. On the edge of the region, the box can go outside, hence the need for cropping.
Once the force is calculated, the acceleration of the selected particle is calculated using the formula , where is the mass of the selected particle . Upon calculation of acceleration, displacement of the selected particle in time seconds is calculated (assuming initial velocity is zero).
The procedure MOVE actually moves the particle, and adjusts the mass matrix
. If the particle moves to a grid square where there is another particle, the two particles merge into a single particle with the combined mass of the two original particles. Movement only occurs if the magnitude of the displacement is more than half of the length of the grid square (which is 7 cm) containing the particle. If so, the selected particle moves one step in the direction of the force (i.e., we move the particle to one of the eight adjacent grid squares). After moving to a new location, if there already exists a particle in that location, we merge the two particles into one. In other words, the mass of the particle in the new location increases to be the sum of the two masses. After merging the two particles, we remove any particles that are likely to be related to non-targets. To achieve this, we remove particles whose mass is less than one-seventh of the largest mass particle. We have performed extensive simulations across a wide range of system configurations, and show in
Section 4 that the choice of one-seventh produces better results compared to other thresholds such as
.
The main Algorithm 2 consists of two loops. The inner loop repeatedly selects a particle at random, chooses a random-sized box, computes the gravitational force, and associated movement and mass change (if any). All of this is done in Algorithm 1 as described above, which is called from Algorithm 2. If the particle moves, the mass matrix changes, because the mass at the original location goes to zero, and the mass at the new location increases by the mass of the moving particle. The inner loop of Algorithm 2 repeats until it is deemed that there is no further change. Even if one particle does not move, another randomly selected particle may yet move. An equilibrium is deemed to have been reached if there is no change after randomly selected particles are tested. When the number of targets is unknown, we output the location of the non-zero mass particles after the equilibrium reached. When we have additional information regarding how many targets are there, we output the locations of non-zero mass particles if the number of non-zero mass particles equals to the number of source targets. Otherwise, when they are not equal, we repeat the process again. This is done using the outer loop in Algorithm 2.
The reason for the outer loop is because the problem we are solving is hard. It is a non-convex problem, and the equilibrium reached can be a locally optimal solution, but not globally optimal. We find that when we run the algorithm for a second time, from the same starting conditions, a different equilibrium can be reached. The randomness of particle selection and box size selection can lead to different equilibria being reached. The number of targets found can be different in different iterations. The algorithm stops when the number of targets found equals the true number of targets, in which case it outputs the target locations found in the final equilibrium. The algorithm terminates after a maximum of trials. If it runs for trials then it has failed by definition.
We find that Algorithm 2 almost always (
of the time over 5000 realizations) terminates before reaching
iterations, and the results presented in
Section 4 show how accurate the output target locations are. The fact that the number of trials is upper bounded by
tells us that the number of local optima is limited, and grows no more than linearly with the number of targets.
Ideally, we would run the gravity algorithm in continuous time, and all forces would be calculated simultaneously. Since we are running a discrete-time algorithm, and considering each particle one at a time, it is important that we do select each particle in a systematic way (e.g., from right to left) as this would impose a bias on the process of movement. For this reason, each particle is selected randomly each time. The maximum movement step of one grid square is imposed as a way to approximate a continuous movement.
Algorithm 1 Procedures |
- 1:
procedureDisplacement([i j], , ) - 2:
- 3:
← - 4:
corresponding physical location of the element at from . - 5:
= - 6:
minimum distance between any two targets. - 7:
2 (minimum box-size value) - 8:
(maximum box-size value) - 9:
a random number between and - 10:
maximum - 11:
for minimum(size(, 1), ) do - 12:
maximum - 13:
for minimum(size(, do - 14:
if !{ and } then - 15:
← - 16:
corresponding physical location of the element at from . - 17:
= - 18:
- 19:
+ - 20:
- 21:
- 22:
- 23:
- 24:
return - 25:
proceduremove(, , , ) - 26:
if then - 27:
Move the particle to one of 8 adjacent square in the direction of force. - 28:
return - 29:
procedureupdate( ) - 30:
← max() - 31:
- 32:
- 33:
for do - 34:
- 35:
for do - 36:
if then - 37:
- 38:
- 39:
- 40:
return
|
Algorithm 2 Gravity Inspired Algorithm |
- 1:
Create a matrix such that each element in matrix represents mass of the particle. - 2:
vector consists of the corresponding physical locations of the elements in the matrix . - 3:
nnz() - represents the number of non zero entries in matrix . - 4:
length of the square’s side - 5:
iteration ← 0 - 6:
for iteration do - 7:
no-change = 0 - 8:
-Previous = - 9:
while no-change ≤ do - 10:
randomly pick a non-zero element from matrix - 11:
indices of z w.r.t to matrix - 12:
DISPLACEMENT(, , ) - 13:
MOVE(s, [i j], ) - 14:
if == -previous then - 15:
no-change = no-change + 1 - 16:
else - 17:
- 18:
no-change = 0 - 19:
-previous = - 20:
if nnz() = N then - 21:
break - 22:
else - 23:
iteration = iteration + 1 - 24:
Output the location of the non-zero elements of the Matrix from the Matrix .
|
3.3. General Application of GICA
We note that our proposed gravity inspired clustering algorithm can be applied much more generally to any data clustering task (i.e., not limited to TWR radar). For example, any system where measurements are being made from a finite number of sources or classes and where those measurements are inaccurate or noisy, and where there can be additional spurious measurements. This includes many more general classification problems.
4. Results
The range measurements in the presence of a wall is modeled as
=
+
[
2]. Where
represents the range measurement corresponding to the to the
ith target at
jth receiver when the transmitter and receivers are at intermediate location
in the presence of a wall.
’s are the i.i.d Gaussian random variables with mean
and variance
.
represents the distance from the transmitter to the
ith target and from
ith target to the
jth receiver at the
intermediate location.
Figure 7 is plotted for the scenario in
Figure 1, i.e., 7-target scenario.
It is difficult to compare our proposed algorithm with existing algorithms because none have been proposed for the novel problem formulated in this paper. Given just the range measurements, a model would typically be needed for the locations of ellipse intersection points before a suitable algorithm could be applied, and we do not currently have such a model. As noted earlier, calculating intersection points of two rotated ellipses is a hard problem. The number of intersection points increases as the number of targets increases, which further increases the complexity. For the same seven target scenario, using “solve” function in MatLab to solve for all the intersection points took one day for just one realization. This shows that it is not practical. The simulation is performed on the desktop computer with 32 gigabytes of RAM and Intel Xeon @3.50 GHz processor.
Instead, we will first utilize our EH pre-processing step to obtain data consisting of the histogram of ellipse crossings over grid squares, and then consider alternatives to our proposed gravity clustering algorithm. We consider two standard clustering algorithms: k-means and fuzzy c-means, and we also consider the alternative clustering algorithm using gravity proposed in [
20]. In all cases, the measurements are taken at
equally spaced intermediate points between
and 5 m, as the system moves from left to right across 10 m.
Our proposed algorithm uses a thresholding operation (in EH pre-processing step) to remove those particles with mass less than half that of the largest mass particle. For the existing algorithms, we depict in
Figure 7 the performance both with and without this initial thresholding operation. The dashed red curve represents the performance of the fuzzy c-means algorithm without thresholding, and the solid red curve represents the performance with thresholding. It can be seen from the results that thresholding improves the performance of the two standard clustering algorithms. Thresholding does not benefit the gravity-based clustering algorithm [
20], and it appears that this algorithm does not work for our problem.
From
Figure 7, we can see that proposed algorithm performs better than the other algorithms. For
, the proposed algorithm has
less error per target when compared to the best of the other three algorithms, which is either k-means or fuzzy c-means, depending on the level of noise. The proposed algorithm has an accuracy of 8 cm.
In simulations, the maximum number of iterations for convergence in the k-means and fuzzy c-means algorithm is set to 100. In [
20], they used the following values for the parameters in their algorithm,
(the initial gravity constant) and
(the number of iterations), which resulted in good performance for the datasets considered in that paper. However, we have observed that for the datasets we are considering in this paper, the gravity constant needs to be increased to
in order for the centroids in their algorithm to move, although, as remarked above, this is still not effective for finding the target locations.
For the seven target scenario in
Figure 1, we compare the error performance of our algorithm for different threshold levels.
Table 1 tabulates the error per target for different threshold levels. From the table, we can see that one-seventh has slightly better performance; however, we can see that performance is robust to the change in threshold levels. The results are for the noise level
.
Figure 8 shows that the proposed algorithm performs better than the other two, even when some of the measurements are missing. From the figure, we can see that as the percentage of missing measurement increases, the error per target also increases. Results show that the proposed algorithm outperforms the existing algorithms and produce better results. The results are for the noise level
.
To show the effect of the choice of square size’s length on the proposed algorithm, we have tabulated the error performance for different grid square side’s length.
Table 2 shows that the performance is robust to the changes but performs slightly better when the square side’s length is 7 cm.
Figure 9 shows that the proposed algorithm performs better than the existing algorithm when some of the measurements are false measurements for the scenario in
Figure 1 (i.e., 7-target scenario). False measurements arise when there is a strong reflection from the objects that are not targets (i.e., not of interest, e.g., reflection from the walls.)
Figure 9 is plotted when there are no missing measurements.
Figure 10 shows the proposed algorithms perform better than the existing algorithms when
of measurements are missing and contains false measurements. From the figures, we can see that as the percentage of false measurement decreases, error per target also decreases. We also see that in both the scenarios (with and without missing measurements), the proposed algorithm outperforms the existing algorithms. The simulations are performed for the noise level
.
Figure 11 shows the performance of the proposed algorithm for a different number of intermediate locations. From the figure, we can see that the proposed algorithm performs better than existing algorithms. The figure shows that as the number of intermediate locations increases, the error per target decreases.
Figure 12 shows that the proposed algorithm performs better than existing for the different number of receivers for the scenario in
Figure 1 (i.e., 7-target scenario). From the figure, we can see that error per target decreases as the number of receivers increases. The simulations are done for the noise level,
and number of intermediate locations,
.
To illustrate how the proposed algorithm progresses, we have shown different stages of the algorithm in
Figure 13,
Figure 14,
Figure 15 and
Figure 16, for a 9 target scenario with noise level
and 10% of measurements are missing. From the figures, it can be seen that as the proposed algorithm progress, the particles at non-target locations are removed iteratively. It can also be seen that as the algorithm progresses, particles around the target locations merge together (mass of the particles increasing from
Figure 13,
Figure 14,
Figure 15 and
Figure 16).
For a range of different 7-target, 8-target, and 9-target scenarios simulated, on average, error per target is cm, 8 cm, and 11 cm.