A Novel 3D Visible Light Positioning Method Using Received Signal Strength for Industrial Applications

: In this paper, a novel three-dimensional (3D) indoor visible light positioning (VLP) algorithm using the Cayley–Menger determinant (CMD) with a cost function is proposed and experimentally tested to track a drone for industrial applications. The proposed algorithm uses optical received signal strength (RSS) for estimating the drone’s 3D position without prior knowledge of its height. This reduces the need for additional height sensors used in some 3D VLP systems. The performance of the proposed algorithm in terms of positioning error is also compared with a linear least squares (LLS) trilateration algorithm, with and without tilting of the receiver and with multipath reﬂections. The simulation results show that the proposed algorithm is more accurate and outperforms the LLS algorithm by a median improvement of 21% and is also more robust to the effect of tilting, as well as in the presence of multipath reﬂections. Furthermore, the proposed algorithm has been experimentally tested and compared with the LLS algorithm in a VLP test bed measuring 4 × 4 × 4.1 m 3 . The experimental results show that the median errors for LLS are 11.4 cm, while the median errors for CMD are 10.5 cm, which results in an error decrease of 8% when CMD with a cost function is used.


Introduction
Unmanned aerial vehicles (UAVs), commonly known as drones, are used for different applications, such as to perform visual inspections of a variety of indoor and outdoor environments, as they offer a safe and cost-effective way to inspect different heights and areas that are hard to reach. This also eliminates the need for manual inspections [1]. The areas under inspection can be offshore oil rigs, power plants, façades and buildings. They are also used for conducting a physical inventory in industrial warehouses. However, the primary challenge is that the drone needs to determine its location in relation to its environment autonomously, which requires control and a positioning system with high accuracy.
Wireless technologies that are currently used for drone localization are ultra-wideband (UWB) [2], ultrasonic [3], Bluetooth [4] and ZigBee [5]. Almost all of these techniques are very sensitive to electromagnetic interference and are based on the existing highly congested radio frequency (RF) spectrum. However, there is an alternative cost-effective and interference-free technology, namely visible light positioning (VLP). VLP uses an existing light emitting diode (LED) based lighting infrastructure and provides a great opportunity for indoor localization and tracking of drones as the LED light infrastructure is readily available in homes, offices and industrial environments.
The majority of the existing indoor VLP systems are developed for a two-dimensional (2D) positioning system. In order to have a three-dimensional (3D) system, the height of the receiver must be known. Hence, additional sensors are required to estimate height accurately, at the expense of extra hardware and processing power. In [6], a 3D positioning system was presented by using the accelerometer and gyroscope to estimate the height. A complex particle swarm optimization algorithm was applied in [7,8]. This algorithm required a minimum of 20 and 40 iterations, respectively, to obtain a final 3D position. Similarly, the use of a modified genetic algorithm [9] showed that 76 iterations were required to obtain a 3D position when four LEDs were used. A 3D positioning using the received signal strength (RSS) and angle-of-arrival (AoA) was presented in [10]. However, the proposed algorithm was too complex to implement due to the requirement of multiple optical receivers to estimate the AoA. The authors in [11] proposed a method based on previous height estimations, followed by a height adjustment of the location. However, this method was not reliable, as the best 2D estimate at the previous height would be different from the actual new height, inducing higher position errors.
Furthermore, the presence of multipath reflections is a major factor in the performance degradation of VLP systems. The researchers in [12] analysed the effect of reflections and found that the multipath reflections considerably decreased the positioning accuracy, especially around the edges and corners of the room. In [13], the positioning error was increased to 1.85 m when multipath reflections were considered. Another important aspect of drone navigation is the tilt of the receiver, as the drone will not always remain horizontally oriented while flying. Hence, the tilt of a receiver can also affect the positioning accuracy of the VLP system. The experimental results in [14] demonstrated a positioning error of 60.4 cm due to the tilt of the receiver by 30 • .
In this paper, we propose a novel 3D VLP using the Cayley-Menger determinant (CMD) trilateration algorithm with a cost function to estimate the true 3D positioning without prior knowledge of the receiver's height. The proposed algorithm performs a full 3D positioning, which only requires measured RSS as input, and does not require any additional sensors. In the proposed method, the distances for different heights between the LEDs and the drone are obtained with a CMD positioning algorithm using the RSS. Then, the algorithm iterates through different heights and outputs several candidates for the receiver's position. Finally, the 3D position of the receiver is determined by minimizing the cost function to find the receiver's actual height. To the best of the authors' knowledge, this is the first use of CMD with a cost function in a VLP system to estimate the 3D position. The performance of the proposed CMD based VLP algorithm is also studied for different tilt angles of the receiver and under the presence of multipath reflections. The positioning error of the CMD algorithm is then compared with the benchmark linear least squares (LLS) trilateration algorithm and also tested experimentally in a VLP test bed.
The remainder of the paper is organized as follows. Section 2 describes the VLC system model and the positioning algorithms along with the cost function. Results and discussions are presented in Section 3. Conclusions are finally drawn in Section 4. Figure 1a shows the proposed environment with the flight path of the drone. It consisted of a typical industrial environment (25 m × 15 m × 5 m) with N = 15 uniformly distributed LED based light fixtures with 5 m spacing between them. The N LED light fixtures were placed at a fixed height h LED , with coordinates (x i , y i , h LED ), where i = 1 ... N. We considered a receiver with an active area of A pd located at the unknown location (x, y, z). Furthermore, various trajectories including rectangular and elliptical were considered for the flight path of the drone. However, after extensive simulations, the infinity (∞) shaped path was selected for further simulation, as shown in Figure 1b. This is because the selected path covered multiple heights for the receiver within the proposed industrial environment. We also assumed that the receiver was able to distinguish signals from different transmitters using time-division multiplexing as in [12] and that the transmitters were synchronized. For typical LEDs with Lambertian radiation order m, the received optical power P ri from the i th LED transmitter is given by [15]:

VLC System Model
where P ti is the transmitter's power from the i th LED transmitter, d i is the distance between the i th LED transmitter and the receiver, α is the angle of irradiance, β is the angle of incidence and ψ pd is the field-of-view (FOV) of the photodiode receiver, as shown in Figure 2a. Moreover, by assuming that for horizontally oriented and parallel N LED transmitters and receiver, the d i can be estimated from the received signal power P ri as [16]: where h i = h LED − z is the unknown vertical height difference between LED i and the receiver. Since d i is dependent on α, this could lead to the same P ri values for different distances from the transmitter at different heights. Hence, the estimated distance d i cannot be directly calculated from P ri without accurately knowing h. Due to this, we generated a set of estimated distances d i for different receiver heights z ranging from a minimum height h min and maximum height h max ≤ h LED with a height resolution of 1 mm. However, the assumption that the transmitter and receiver planes are parallel to each other might not always hold for a mobile receiver, especially in the case of drones. In this case, the receiver could tilt, and the angle of incidence is determined by [10]: where z i = h LED and θ is the receiver's tilting angle, which is the angle difference between the normal vector of the xy-plane and the normal vector of the receiver. ϕ is the azimuthal rotation angle, which is the angle difference between the x-axis and the orthogonal projection of the receiver's normal vector on the xy-plane. Moreover, the received signal in (1) can be affected by the shot and thermal noise. Artificial lights or sunlight have a direct impact on the shot noise, resulting in a larger background current. We assumed that there was an indirect sunlight exposure with a background current of 740 µA [17]. The total noise can be estimated using σ 2 noise = σ 2 shot + σ 2 thermal , and the signal-to-noise ratio (SNR) is given by [18]: where R r is the receiver's responsivity. The main parameters to calculate the noise are provided in Table 1.

Illumination Levels
The minimum illumination requirement for industrial applications and typical workspaces for iron and steelwork with continuous manual labour is 200 lx based on European standards [19]. To ensure that these required illumination levels and coverage were met, simulations were performed using DIALux lighting design software [20]. The software allows the selection of different light fixtures from various light manufacturers for the design of optimum illumination levels. It also allows the selection of different types of surfaces that are made from a range of materials for indoor applications. Figure 3 shows the illumination levels for the proposed industrial environment with a large conveyor belt placed in the middle of the factory floor. OSRAM's PrevaLight High Bay LED based light fixtures were used with a power of 80 W and a 45 • semi-angle of divergence. These luminaires are suitable for industrial applications as they offer high power and wide beam distribution for a consistent coverage area that is typical in industrial environments [21].
Note that the floor material was considered to be fine concrete and had a reflection factor of 34%, and all the walls were red bricks with a reflection factor of 17%. The reflectivity coefficients were adopted from DIALux software to ensure its practicality. The simulation results showed that an average illumination of 270 lux was achieved around the entire area at the working plane height of 0.8 m. This verified that the selected light fixtures offered the minimum required illumination levels specified by the European standards and were suitable for industrial applications.

Positioning Algorithms
The positioning algorithm was performed by taking into account each set of estimated distances d i (i = 1, ..., N) using (2) for different heights of the receiver. Then, the unknown 3D position was estimated by using CMD and LLS by minimizing the cost function for the set of heights ranging from a minimum height h min and maximum height h max .

Cayley-Menger Determinant
The novelty in our proposed method was the extension of CMD with a cost function to be used in VLP systems that enabled the estimation of a receiver's 3D position without prior knowledge of its height. Figure 2b shows the position of three transmitters, p1, p2 and p3, with p4 being the unknown drone location. The CMD algorithm only required three transmitters to estimate a location; therefore, the corresponding signals from the three strongest (mostly the nearest) LEDs were taken into account, as they offered the highest SNR.
The Cayley-Menger bideterminant of two sequences of n points [p 1 , p 2 , ..., p n ] and [q 1 , q 2 , ..., q n ] is defined as [22]: where D(p i , q j ) is the squared distance between points p i and q j . When two sequences of points are the same (i.e., p i = q i ), then D(p 1 , ..., p n ; q 1 , ..., q n ) is denoted by D(p 1 , ..., p n ) and is simply called CMD [22]. Assuming p 4 is the unknown location of the drone, D(p 4 , p 1 ), D(p 4 , p 2 ) and D(p 4 , p 3 ) are the distances d 1 , d 2 and d 3 that are computed from the RSS for a given receiver height. It is then possible to calculate the unknown position of the receiver (p 4 ) with respect to three known transmitter coordinates (p 1 , p 2 , p 3 ) using [22]: where v 1 = p 2 − p 1 , v 2 = p 3 − p 1 and the ± sign accounts for the two mirror symmetric locations with respect to the base plane, but given the impossibility of a receiver being above the light fixtures, one of the possibilities can be ignored. k 1 , k 2 and k 3 are given by: The proposed algorithm then outputs ( x(h), y(h), z(h)) for each of the assumed possible heights. Once all the possible receiver locations have been generated, the estimated location is found at the minimum of the cost function C(h) as: Here, C(h) is the average squared error between the estimated distances d i (h) using (2) and the distances of the estimated location ( x(h), y(h), z(h)) using (6). After estimating the 3D position of the unknown receiver (p 4 ), the final estimated position ( x, y, z) is compared with the actual position of the receiver to find the positioning error as:

Linear Least Squares
As the correct distances cannot be estimated directly without knowing the receiver's height, 2D trilateration using LLS was performed for each of the assumed heights h. The horizontal squared distance between the N LED transmitter and a receiver is given by: These linear equations can be expressed in a matrix form as b = Ax, where: The algorithm then outputs the estimated position x y for each of the assumed possible heights h using the Moore-Penrose pseudo-inverse of A: After that, minimization is achieved by using (7) in order to find the most probable 3D position as in our previous work in [23].

Experimental Validation: Configuration
To validate our proposed algorithm, we experimentally tested our method in a VLP lab measuring 4 m × 4 m with the height of the LEDs at approximately 4.1 m, as shown in Figure 4a. The transmitters used were BXRE-50C3001-D-24 LEDs and were intensity-modulated using pulse trains with a duty cycle of 0.5 with frequencies of 500 Hz, 1 kHz, 2 kHz and 4 kHz, generated using Adafruit Trinkets. This ensured that the received signals from the different LEDs could be demultiplexed individually at the receiver side. The LEDs were placed in a star configuration due to the ambiguity that occurs when only four LEDs are used in a square configuration, as demonstrated in our previous work in [23].  The Thorlabs PDA36A2 optical receiver had an integrated electrical amplifier with an active area A pd of 13 mm 2 . The photodiode's responsivity was obtained by weighing the responsivity curve of the photodiode over the wavelength dependence of the LED and calculating an estimated value of 0.22 A/W. The receiver was attached to a tripod with a vertical pole that allowed adjustment of the receiver's height, as shown in Figure 4a. The current was digitized using National Instrument's USB-6212 DAQ device. A fast Fourier transform (FFT) based demodulation was used to extract the received power values for each LED in MATLAB R , as specified in [24]. A block diagram of the experimental setup is also shown in Figure 4b.
The measurements were taken in the VLP test bed as shown in Figure 5. The selected path took the receiver around the room at different heights ranging from 0.64 to 2.55 m, as shown in Figure 5a. Here, we considered forty-eight test points for the selected path, and twenty-five measurements were taken at each location. A top view of the experimental path within the VLP test bed and the locations of the LEDs are also shown in Figure 5b.

Results and Discussion
The performance of the proposed CMD algorithm was evaluated in terms of positioning error for a typical industrial deployment, adhering to the standardized illumination levels, by considering (i) normal line-of-sight and untilted reception, (ii) different tilt angles of the receiver and (iii) multipath reflections. The main simulation parameters are summarized in Table 1.

Positioning Accuracy for Line-of-Sight Reception with Untilted Receiver
The performance of the algorithm was first evaluated to investigate the effect of tilt on the height estimation using the RSS and cost function for a position when the receiver was at (10 m, 6 m, 2 m). Figure 6 shows the value of the cost function as a function of the receiver's height with and without the effect of tilt for both the CMD and LLS algorithms.
The result showed that without tilt, the cost function minimized at h = 2 m for CMD and LLS, i.e., the estimated height of the receiver and the actual height were the same. This verified that the estimated height was very precise due to the high SNR values (>34 dB) using (4). However, for a tilt angle, θ = 5 • , the estimated height was 1.82 m when CMD was used and 1.89 m for LLS. This showed the adverse effect of tilt on the estimation of height h using RSS.
Furthermore, a realistic flight path was considered using a set of 500 points around the manufacturing environment, as shown in Figure 1. This path was selected to take the drone around most of the room with varying heights ranging from 1.5 to 3.5 m. The estimated SNR values for the selected flight path ranged from a maximum of 82.8 dB to 19.2 dB when the drone was at (12.5, 7.5, 3.5), which was directly under the LED light fixture in the centre of the room; see Figure 1b. Note that these high SNR values for VLP were due to the high power LEDs and the adherence to the minimum illumination constraint, as also reported in [25][26][27].  Figure 7 shows the cumulative distribution function (CDF) of the positioning errors for the 500 points. The positioning errors along the path were evaluated using (8). The results in Figure 7 show small positioning errors and high accuracy, which was similar as reported in experiments and simulations [28]. It can be observed that around 80% of the points had a positioning error less than 0.78 cm for CMD and 0.94 cm for LLS. Half of the errors (50%) using CMD and LLS were below 0.42 cm and 0.52 cm, respectively. Due to the fact that LLS used all of the received signals including signals from far-away LEDs, SNR values as low as 1.04 dB were measured at some locations. This can introduce higher positioning errors than the CMD algorithm, which required only three LED transmitters. The CMD outperformed the LLS algorithm by an average of 14%, and the median was improved by 23%. A breakdown of the errors for the three different axes is shown in Figure 7 (see the inset). The majority (57.7%) of the positioning errors using CMD were comprised of vertical error (z-axis), while the x-and y-axis errors were 19.6% and 22.7%, respectively. However, the main part of the error using the LLS method was mostly horizontal error with 41.6% from the y-axis and 31.2% from the x-axis. Contrarily, the z-axis was the smallest contributor with around 27.2% of the total positioning error.

The Effect of Tilting
A widespread assumption made in the literature for VLP systems is that the transmitter and receiver are parallel, as assumed in (2). However, this assumption does not hold in real-world applications, where the moving drone tilts in order to move forward at different azimuthal angles, as shown in Figure 1b. Therefore, the effect of tilting was investigated here. The tilt of the drone was set to a forward tilt angle θ with values of 1 • , 3 • and 5 • , and the value of the azimuthal angle ϕ changed along the path; see Figure 1b. In our model, the receiver faced the eastern wall when ϕ = 0 • and the northern wall when ϕ = 90 • . Therefore, changing the azimuthal angle during the flight path ensured that the drone was always forward-facing. Noise was not considered here in order to analyse the effect of tilt and azimuthal angles on the positioning accuracy independently. Figure 8 shows the CDF of the positioning error for the 500 points for the selected path with  It should be noted that the severity of the tilting effect is also dependent on the user, as the operator can adjust the maximum tilt angle when initializing the drone. Additionally, the effect of the receiver tilt could be simply alleviated by using a compensation method such as the one proposed in [14], where the effect of the tilts was compensated using on-board sensors such as a gyroscope that reduced the positioning error from 60.4 cm to 1.62 cm after the compensation. Another method to alleviate the effect of tilt is by keeping the drone horizontal and tilting the rotors for movement [29].

Positioning Accuracy with Multipath Reflections
The effect of multipath reflections was also investigated for the proposed CMD algorithm and the LLS algorithm. The position of the receiver was considered at (4,4,1), (7,4,1), (10,4,1) and (13,4,1) in order to test the effect of multipath reflections. These positions were selected as they covered the multipath reflections due to their position close to the walls and up to the middle of the room, i.e., the effect of high to low multipath reflections. The channel impulse response was simulated for the selected positions using the modified Monte Carlo ray tracing method outlined in [30], and up to three reflections were taken into account, as these contained the majority of the signal power. In order to analyse the effect of multipath reflections only, noise was not considered in these simulations. Furthermore, the wall and floor reflectivity coefficients were considered based on the concrete and red brick materials to mimic a real indoor industrial environment; see Table 1. Figure 9 shows the positioning errors for the four specified locations of the receiver with multipath reflections. The results showed that when the receiver was at (4, 4, 1), and LLS achieved a positioning error of 107 cm, while CMD had an error of 79 cm. When the receiver was at (7,4,1), (10,4,1) and (13,4,1), the positioning error for LLS was 91.53 cm, 72.24 cm and 67.85 cm, respectively, while the CMD achieved a positioning error of 47.36 cm, 54.72 cm and 43.84 cm, respectively. Therefore, the performance of CMD was superior to that of LLS in the presence of multipath reflections. This was due to the fact that LLS used any number of signals that were received by the receiver along with their corresponding reflections, meaning that it had more skewed signals, which had a compounding effect. Hence, the receiver's position estimation was affected by the multipath reflections from those signals, as well, especially given that the reflections contributed significantly more to the received power when coming from farther transmitters due to larger room dimensions. However, this effect was less severe in CMD as the algorithm only selected the strongest three signals to find a position. Likewise, a higher positioning error of 170 cm was also reported in [12] due to multipath reflections even for 2D localization, albeit for smaller room dimensions. A method to reduce the effect of the multipath reflections was proposed in [31]. The authors proposed the use of orthogonal frequency division multiplexing (OFDM) to mitigate the effect of multipath reflections and to provide high data rate transmissions. Their results reported a root mean squared (RMS) error of 0.04 m when OFDM modulation was used, while it was 0.43 m for when on-off keying (OOK) modulation was used.

Experimental Validation
Our proposed algorithm was experimentally tested based on the specifications detailed in Section 2.3.3. Figure 10a shows the CDF of the simulation and measured positioning errors for the CMD and LLS algorithms. The results showed that the median and maximal errors for the CMD were 10.5 and 23.2 cm, while the median and maximal errors for the LLS were 11.4 and 25.3 cm. However, the simulation results showed that the median and maximal errors for the CMD were 2.5 and 4.2 cm, while the median and maximal errors for the LLS algorithm were 2.7 and 4.3 cm. Furthermore, the simulation and measured average errors are represented as an asterisk for both the algorithms, and the 10% and 90% quantiles are shown in Figure 10b. The results show that the measured average error for the CMD algorithm was 12.2 cm, while the measured average error for LLS was 12.9 cm. The average error for the simulations was almost comparable to the CMD and LLS algorithms. Note that the experimental median error in CMD was lower than the LLS algorithm by 8%. A summary of the median, maximal and average errors for CMD and LLS algorithms for the simulations and experiment results is shown in Table 2.  In order to validate the simulations for the CMD and LLS algorithms for the effect of tilting, the experimental test was repeated for the same path with a receiver tilt θ = 10 • , as shown in Figure 5a. Figure 11a shows the CDF of the measured and simulation position error for the CMD and LLS algorithm with receiver tilt. The experimental results showed that the median and maximal errors for CMD were 21.6 and 35.9 cm, while the measured median and maximal error for LLS were 26.0 and 36.8 cm. However, the simulation results showed that the median and maximal errors for the CMD were 19.6 and 29.5 cm, and similarly, the median and maximal errors for the LLS were 21.5 and 29.6 cm. The measured average position error for the CMD was 23.3 cm, and similarly, the measured average position error for the LLS was 25.4 cm. However, the simulation results showed the average position error of 20.7 cm for the CMD algorithm and 22.2 cm for the LLS algorithm. This showed a good agreement between the simulation and experimental CDF of the positioning error for both the CMD and LLS algorithms. The experimental results also showed that an average error in CMD was lower by 8.6% than the LLS algorithm. Furthermore, a summary of the median, maximal and average errors with receiver tilt θ = 10 • for the CMD and LLS algorithms is also shown in Table 2.
The experimental results reached the same conclusion as the simulation results and demonstrated the applicability of our algorithm for 3D positioning without prior knowledge of the receiver's height. It should be noted that some of the errors observed in our experiments could also be caused by other factors such as (i) the LEDs having small unknown tilt angles [32], (ii) the LED radiation pattern not being perfectly Lambertian and (iii) the LED power showing a deviation from their advertised values [33]. The difference between the simulated and experimental results was due to the nature of experimental work and background noise. Similar discrepancies in experimentally tested VLP systems were reported in [7], where simulation results reported an average error of 3.9 mm and their achieved experimental errors were 3.5 cm. Similarly, the work in [8] reported an average simulation accuracy of 1.12 cm at a receiver height of 1 m and a positioning accuracy within 10 cm when the receiver was at a height of 0.75 m.
(a) (b) Figure 11. (a) The CDF of the errors obtained in the experiment with a receiver tilted θ = 10 • ; (b) the distribution of the median errors with the 10% and 90% quantiles; the asterisk represents the mean error.

Conclusions
In this paper, a new and simple algorithm for 3D VLP based on the RSS was proposed and experimentally tested. The proposed method combined the use of the CMD trilateration algorithm with a cost function and was shown to be more accurate and robust when compared with the widely used LLS algorithm. The algorithm's performance was shown for a drone travelling a realistic path in a manufacturing environment, and the positioning error was simulated with and without the impact of tilt and multipath reflections. The results showed that the proposed CMD VLP algorithm outperformed the LLS algorithm by an average of 14% and a median improvement of 21% without receiver tilt or multipath reflections. When a receiver tilt of 5 • was considered, CMD achieved median and maximal errors of 30 cm and 72.2 cm, while LLS achieved median and maximal errors of 58.2 and 77.7 cm. Furthermore, the effect of multipath reflection was also investigated with the CMD algorithm, achieving an error of 79 cm, while the LLS algorithm achieved an error of 107 cm when the receiver was close to a wall. The proposed algorithm was also tested in a test bed measuring 4 × 4 × 4.1 m 3 . The experimental results also showed that the proposed CMD algorithm with the cost function achieved a median error of 10.5 cm, while LLS achieved a median error of 11.4 cm. This shows that the CMD with a cost function algorithm was more accurate than the LLS trilateration method and the use of the cost function could estimate the 3D position of a receiver without prior knowledge of its height, eliminating the need for additional sensors.

Conflicts of Interest:
The authors declare no conflict of interest.

Abbreviations
The following abbreviations are used in this manuscript: