2.1. Technical Description and 3D Configuration
This proposal is based on the beacon unit developed for the LOCATE-US prototype, designed and implemented by the GEINTRA-US/RF Research Group from the University of Alcala [
11,
24]. It is a compact, and lightweight ultrasonic beacon architecture. It is formed by five ultrasonic transducers located at the four corners and at the center of a square with a side of 0.707 m, as can be observed in
Figure 1a. The ultrasonic transducers are controlled by a field-programmable gate array (FPGA)-based platform that consumes an average power of 3.3 W. Note that the beacons are installed at fixed positions and normally can be plugged to the mains, so the consumption is not critical. The five ultrasonic transducers have the same orientation and cover a similar volume size. This coverage volume is actually a truncated cone of 53 m
3 when the height between the small base (the circle including the ULPS with an area about 0.78 m
2) and the large base (a circle about 40 m
2 on the ground) is 3.5 m, assuming that the effective emission angle of transducers is around 120°. The ultrasonic transducer used is the PROWAVE 328ST160 [
26], which has a total beam angle of 100° (−6 dB) measured at 32.8 kHz and can be extended to 120° with a small loss (around −7 dB). As its internal diameter is 13.2 mm, it is expected that the beam angle decays at higher frequencies (at 40 kHz roughly the wavelength drops from 10.4 mm to 8.5 mm). The five beacons
Bj,
j = 1,2, …, 5, are not coplanar, since they have a small variation in height to improve the coordinate estimation in this direction. Beacons B3 and B5 are placed at 10 cm high, B1 is 20 cm high, and B2 and B4 remains in the background plane (normally the ceiling or a wall) [
8]. Inside this common coverage space, different receivers can estimate their positions independently and autonomously [
27]. According to the transducer datasheet [
26], this ultrasonic transducer has a resonance peak at 32.8 kHz with a bandwidth of 2.5 kHz; nevertheless, in this work, we are interested in the middle zone between this resonance frequency and the other one existing at 46 kHz (the transducer has been tested at these higher frequencies to determine its behavior, see [
28] for further details). Using a central frequency of 41.667 kHz, a bandwidth of 8 kHz can be effectively used. Furthermore, the ultrasonic transmissions are encoded with different 255-bit Kasami sequences [
29], due to their suitable cross-correlation and auto-correlation properties. These sequences are Binary Phase Shift Keying (BPSK) modulated to fit the available bandwidth. The ultrasonic transmission period is 50 ms, in order to discard possible multipath effects between successive transmissions. As these are encoded, the medium access technique can be either code division multiple access (CDMA) or time division multiple access (TDMA). Hereinafter, the technique applied is T-CDMA (that is, CDMA with a certain time separation between the emissions from different beacons to avoid a complete overlapping of emissions).
Nevertheless, it is worth noting that this LOCATE-US ULPS presents limitations for 3D positioning, mainly in the direction of the ultrasonic transmissions (perpendicular to the plane at which the beacon unit is installed), where the dispersion of the obtained position is high, providing significant errors for further distances and under adverse conditions [
24,
27,
30].
To overcome this drawback in 3D indoor positioning, this work proposes the deployment of several ULPSs in orthogonal planes, so the final performance depends on the number of ULPSs and their emission patterns. This proposed setup provides an enhancement of accuracy in the position estimation for any direction/coordinate. Particularly, it installs three beacon units (ULPS-1, ULPS-2, and ULPS-3) in three perpendicular planes: ULPS-1 on the ceiling, and ULPS-2 and ULPS-3 on two perpendicular walls, thus following typical shapes in indoor spaces, as is shown in
Figure 1b. The scanned environment can be divided into four zones: one covered by the three ULPSs (in the center of the room), zones with the different combinations of two ULPSs (ULPS-1 + ULPS-2, ULPS-1 + ULPS-3, ULPS-2 + ULPS-3), zones covered just by one ULPS (ULPS-1, ULPS-2 or ULPS-3); and zones that are not covered by any ULPS within the perimeter of the room. Note that the positioning accuracy depends on those ULPS’s coverage combinations. This work has been focused on the experimental environment shown in
Figure 1b: it is a university hall, thus a large space of 7 × 8 × 3.5 m
3.
Table 1 shows the coordinates of the central beacons B1 in
Figure 1a, for every ULPS; note that ULPS-2 and ULPS-3 have different heights and are not placed at the centers of the wall. It is worth noting that, in general terms, acoustic local positioning systems (LPSs) present a performance that may strongly depend on the environment complexity, where multi-path effect or non line-of-sight (NLoS) situations can rapidly degrade the correct estimation of TOAs or TDOAs, thus implying higher positioning errors. Under these circumstances, the proposal described hereinafter results in a more robust solution due to the fact that 15 ultrasonic emitters are placed in three different and orthogonal planes. This makes it feasible to have available a large enough number of LoS measurements to operate even in complex environments. Additionally, as will be detailed in
Section 2.2, the low-level processing algorithms applied to the received signals deal well with the multipath effect and low signal-to-noise ratios.
In this situation, fifteen ultrasonic transducers are transmitting simultaneously, and any receiver can process these emissions to determine the corresponding TDOAs, and then estimate its own position by applying a hyperbolic positioning algorithm. The five beacons of each ULPS are controlled by an FPGA-based circuit, which operates at 5 V. It performs three main tasks: standby/monitoring, Ethernet configuration and ultrasonic transmissions. The current consumption is 0.67 A, 0.66 A and 0.68 A for each task, respectively. Note that the beacons are installed at fixed positions and normally can be plugged to the mains, so the consumption is not critical.
With regard to the reception stage, a multiple ultrasonic prototype has been considered in this work, involving three independent ultrasonic receivers. As can be observed in
Figure 2a, a single ultrasonic receiver consists of an omnidirectional microphone MEMS PU0414HR5H-SB (which includes the emitters’ bandwidth around 41.67 kHz, with 94 dB SPL at 1 kHz) [
31], a high-pass filter to discard audible frequencies, an analog-to-digital converter (ADC) sampling the received signals at 100 kHz, and a STM32F103 processor unit. This single ultrasonic receiver is capable of acquiring a data window with a length of up to 100 ms, thus implying a global update rate of 10 Hz. Due to the geometry of the beacon units, this single receiver provides good performance when it is oriented to a certain ULPS and installed in its parallel plane, so it is possible to acquire the five ultrasonic transmissions involved. The problem arises when there are three beacon units available in the environment with completely different orientations, so that a single receiver will not be able to receive all the fifteen transmitted signals in many cases. The single receiver or the 2D receiver is used for 2D positioning when the emitters are placed on the ceiling and the receiver is installed, horizontally, e.g., on board of a mobile robot on the floor (the aperture beam of the receiver is about 180°). However, in the 3D configuration, three ULPSs are placed in three perpendicular walls. The use of this receiver does not guarantee the reception of all the transmissions, especially the reception from the ULPSs emitting from behind. This is the reason why a multiple receiver prototype has been proposed. It is composed of three receivers (namely RA, RB and RC) placed on the upper faces of a tetrahedron, as can be observed in
Figure 2b (the inclination angle is 60° for each receiver). Each microphone captures the signals coming from the ULPSs in front of it. This structure aids in maximizing the probability of acquiring up to fifteen signals coming from the three beacon units, thus improving the performance in the position estimation [
32,
33]. The 3D receiver consumes 80 mW roughly (24 mA at 3.3 V), if it is continuously acquiring signals.
For this 3D configuration, the five beacons of each ULPS emit simultaneously (or with known delays between them) and, then, the receiver does not need to be synchronized with the beacons if we use hyperbolic positioning (multilateration). Furthermore, if each microphone processes its TDOAs in an independent way (as it is the case here), there is no need for synchronization between the microphones. The reason to provide a synchronization among microphones is for those cases where it is desired to apply a unique positioning algorithm with all the TOA measurements (no matter which microphone received the signals). Note that the same processing module is used for the three microphones with a master clock of 50 MHz and an acquisition frequency of 100 kHz (the minimum resolution step in the TDOA determination is then 10 µs). For this reason, any consideration about the time jitter in the duration of each processing window is negligible.
2.2. Proposed Signal Processing
In the case mentioned before, with three different ULPSs deployed in the environment and the multiple receiver prototype, three incoming received signals,
rA[
n],
rB[
n] and
rC[
n] are acquired, each one containing up to fifteen ultrasonic transmissions. Afterwards, for each one of these three acquired signals, fifteen correlations (45 correlations globally) are performed, involving the different fifteen 255-bit Kasami sequences used to encode the ultrasonic emissions. These correlation functions and their maximum peaks are used to determine a set of TDOAs.
Figure 3 presents an example of the five correlation functions that are obtained at the receiver RA only for ULPS-1, using different colors for each beacon B
j. As was mentioned before, the window size of the received signal
rA[
n] is 10.000 samples, corresponding to 0.1 s long. This size allows at least one emission period to be captured.
From the peaks obtained, the TDOAs can be easily obtained, by taking one of the beacons (e.g., beacon B1) as reference. Finally, by multiplying these TDOAs by the speed of sound in air, we obtain the distance differences used in the hyperbolic positioning algorithm.
The position of each receiver is estimated from these distance differences using a Gauss–Newton algorithm, which implies:
Finally, the variations along each axis can be computed:
where with:
Estimating, at each step k, the new position , and repeating the process until becomes small enough (according to a pre-defined threshold).
Consequently, for any particular test point P, applying this algorithm at each receiver for each one of the three ULPSs, it is possible to obtain up to three different estimated positions for each receiver, (
x1, y1, z1), (
x2, y2, z2) and (
x3, y3, z3). Note that every ULPS has beacons emitting different codes and, consequently, the receiver is able to discriminate and calculate a position for each ULPS (if a large enough number of distance differences is obtained). Furthermore, the model of noise propagation for each coordinate (σ
x, σ
y and σ
z) in a single ULPS can be previously determined, depending on the position obtained, by simulation and empirical tests (see
Section 3). These typical deviations are obtained from values previously stored for a grid of discrete positions for every ULPS, and used later for the position fusion. Then, for three ULPSs, nine positioning errors can be modelled, three per coordinate, so, for example, in the coordinate
x, the positioning errors can be: p(
x1|x) = N(
x,σ
1x2), p(
x2|x) = N(
x,σ
2x2) and p(
x3|x) = N(
x,σ
3x2), where N(
x,σ
x2) is the normal distribution with mean
x and variance σ
x2. The final estimated coordinate
xMLE is shown in Equation (5), as well as for
yMLE and
zMLE.
A new standard deviation
x can be defined for coordinate
x after the fusion (and similarly for
y and
z), according to Equation (6).
Note that the coordinates (
xMLE,
yMLE,
zMLE) can be obtained for each receiver RA, RB and RC, resulting in three positions
PA,
PB and
PC. These three resulting positions are averaged to obtain the final estimated position. This whole processing is detailed in
Figure 4a, with three identical branches, each one corresponding to an ultrasonic receiver. On the other hand,
Figure 4b particularizes the details of the processing algorithm for the first receiver RA. This processing is also the same for receivers RB and RC. It is worth noting that the availability of nine position estimates at the input of the MLE fusion module is optimistic. In real cases, due to geometrical considerations, coverage areas, noise, and other constraints, some ultrasonic transmissions will not be detected at the receivers, thus posing a challenge to obtain the aforementioned nine estimates.
It is worth highlighting that the positions to fuse are estimated for each ULPS and not including all the distances from all the ULPSs simultaneously (making a fusion at distance level), because each ULPS operates without a precise synchronization with the others.
Generally speaking, the positioning of any receiver should be carried out in real time. Nevertheless, in order to use the MLE fusion algorithm, the variances (σix2, σiy2, σiz2) of the estimated positions in the X, Y and Z axis, where i = {1, 2, 3} is the index of the ULPS i, must be known for a set of different ground-truth positions. For that, the final application of the proposal requires a training phase, where the aforementioned variances are obtained off-line for the volume under analysis. These variances are used later during real-time operation to estimate the receiver’s position in the MLE fusion.
A last aspect to be considered is the computational load determined by the proposed signal processing. It requires the calculation of three demodulation processes for three input buffers,
rA[
n],
rB[
n] and
rC[
n], with a length of 10,000 samples, and a two-samples demodulation symbol. Afterwards, a total of 45 correlations are implemented, actually 15 per each demodulated signal, where the demodulated signal is still 10,000 samples long and the pattern sequence, assigned to each transmitter, has 255 samples, corresponding to the 255-bit Kasami codes applied to the transmission encoding. A peak detector is performed in the resulting correlated signal, whose peaks are used to determine the partial positions
PA,
PB and
PC. It is worth mentioning that some previous works have already dealt with this challenge [
34], often using SoC (System-on-Chip) architectures based on FPGA devices to take advantage of the parallelism from the configurable logic and the flexibility from the available processors. For this work, the STM32F103 processor unit manages the acquisition system and the communication with a high-level device (Personal Computer PC, smartphone or tablet) via an USB port. So, all the proposals and tests have been validated hereinafter without real-time constraints.