1. Introduction
Positioning services based on satellite coverage, such as global positioning system (GPS), cannot provide satisfactory performance in indoor environments, which hamper the use of applications such as autonomous vehicles or improving the manufacturing procedures in the framework of the industry 4.0 [
1,
2]. During the last decades, this issue has been solved by considering radio-frequency (RF) systems such as WiFi [
3,
4] or Bluetooth [
5]. However, positioning based on these techniques is subject to competing for bandwidth in an overwhelmed spectrum, which may lead to interference and non-satisfactory positioning performance. Moreover, the lack of dense deployments of access points limits positioning to simple techniques, such as a fingerprint, while more complex schemes, e.g., based on trilateration or angle of arrival (AoA), cannot be employed. In this context, visible light communication (VLC) has been proposed as an alternative technology for providing accurate and satisfactory positioning services [
6]. In contrast with the previously mentioned techniques, VLC operates in a wide and unregulated spectrum, and it can be considered as a reliable, low-cost, and green technology that can be widely deployed in indoor environments based on the concept of light-emitting diodes (LEDs).
White LEDs have become widely used in indoor lighting due to their energy efficiency, long lifespan, and cost-effectiveness [
7]. High-frequency modulated LEDs simultaneously enable visible light to be used for indoor communication, positioning, and security applications [
8]. VLC technology not only meets daily lighting needs but also enables communication and localization [
9]. At this point, notice that VLC offers several advantages, including anti-interference properties, strong confidentiality, and abundant frequency band resources, which is crucial compared to other commonly used parts of the spectrum assigned to communications that are becoming more crowded [
10]. One interesting application of VLC is indoor visible light positioning (VLP), which takes advantage of the deployed LEDs as transmitters to determine the location of specific targets [
11]. Indoor positioning is an evolving area of research that seeks an alternative to the limitations of satellite-based radio navigation systems in small spaces where centimeter-level accuracy is critical [
12]. VLP also provides cost-effective solutions for indoor positioning, making it a valuable addition to urban lifelines within enclosed spaces [
13].
In [
14], Lu et al. (2024) presented a robust method for simultaneous position and orientation estimation using VLC, without relying on traditional radiation pattern assumptions. Their work introduces a system employing ring-shaped LED arrays, optimizing LED distribution and improving the position accuracy in complex environments. Specifically, the weighted gradient of the signal-to-noise ratio (WG-SNR) between adjacent LEDs is evaluated for precise edge detection and integrated with the random sample consensus (RANSAC) algorithm to refine the estimation model by removing erroneous or unwanted reflections. This approach provides a balance of high precision and robustness, achieving processing times of up to 0.22 s, even under adverse conditions.
In a parallel study, in [
15], Rekkas et al. (2024) proposed an advanced machine learning framework incorporating Nyström kernel approximation to enhance 3D VLP systems. This approach not only improves the accuracy of the position estimation by integrating advanced machine learning techniques with traditional VLP methods but also addresses computational complexity in challenging environments. Their system achieves an exceptional average relative root mean square error (aRRMSE) of 2.1 cm, demonstrating the method’s ability to overcome the limitations of previous approaches.
Meanwhile, in [
16], Wang et al. (2024) conducted a comprehensive review highlighting recent advances in VLC-based indoor positioning systems. Their review covers key aspects, such as channel modeling, localization techniques, and multiple access schemes, identifying areas requiring further research, such as noise and interference mitigation, as well as integration with other positioning systems. This article provides a valuable reference framework for future developments in this field, emphasizing the importance of ongoing research to address current challenges.
For example, in [
17], Khattat et al. (2022) conducted a study in which they analyzed different configurations concerning positioning error and received power. They propose complementary and supplementary angle measurements based on received signal strength (CSA-RSS) using a photodiode that is always oriented perpendicular to the lights. High accuracy in determining the receiver position is obtained in this work, with an average error of 3.2 cm in 80% of the evaluated positions and a maximum average error of 4.2 cm.
In this way, in [
18], Gong et al. (2023) proposed a two-dimensional positioning system using two reference LEDs and a photodiode array to achieve accurate position and rotation estimation. The proposed algorithm describes the coordinates of the target using closed formulas based on the directional vectors of incident light, which reduces computational complexity. It is shown that increasing the height or distance between the LEDs could decrease the accuracy of position and rotation estimation, and the average angle of the LEDs should be carefully selected according to the height and distance of the LEDs.
In [
19], Bakar et al. (2021) proposed a positioning system using multiple photodiodes, which enhances accuracy and requires fewer lights than a single photodiode system. The localization error was minimized when using Manhattan or Matusita distance metrics with a weighted k-nearest neighbor (WkNN) algorithm, achieving mean errors of 4.74 mm and 9.87 mm with four and two lights, respectively. However, 3D positioning with multiple photodiodes presents challenges due to complex and non-convex expressions, which require iterative approaches that may not be suitable for embedded applications. Additionally, adding a third dimension to positioning can reduce accuracy, which may be disadvantageous for certain applications.
In [
20], Aparicio-Esteve et al. (2020) conducted a geometric analysis of a visible light positioning system using an array of photodiodes as the receiver and three LED light sources. Their proposal, evaluated through simulation in a 2 × 2 × 2 m space, aimed to determine the optimal height for the QADA (quadrant photodiode angular diversity aperture).
An early foundational study in this field is the work by He, Wang, and Armstrong (2015) in [
21], which introduced a receiver structure for indoor multiple-input multiple-output (MIMO) systems utilizing photodiodes with varying fields of view (FoVs). They analyzed the bit error rate (BER) distribution based on position in a typical room for an MIMO system with asymmetrically clipped optical OFDM (ACO-OFDM) and linear equalizers zero-forcing (ZF) and minimum mean square error (MMSE), finding higher BER values near the center or corners of the room.
Zachár et al. introduced an innovative sensor for measuring the azimuth of modulated light sources using a planar circular photodiode array (PCPA) in [
22]. Their simulation analysis showed that this measurement method with the redundant PCPA achieves an azimuth measurement accuracy between 0.5° and 2° depending on the size of the array. The proposed solution is low-cost, achieving an average localization error of less than 0.1 m in a room measuring 5 m by 4 m.
Additionally, we have analyzed how our method compares to the reviewed works, as shown in
Table 1. Our method achieves a localization error of 3 cm, which is comparable to other state-of-the-art methods. However, due to the practical implementation and the use of frequency shift keying (FSK) modulation, our methodology presents higher computational complexity, reflecting the robustness and capability of our system to operate in real-world scenarios.
Although the proposed method does not achieve the same level of accuracy as the system in [
19], it focuses on 2D positioning to offer a simplified yet accurate solution with low computational complexity. This provides similar results in comparison with more advanced methods but with reduced computational overhead. Unlike complex 3D positioning systems, our 2D approach reduces the need for intricate equations and high computational power, making it more practical for real-world applications. Additionally, it provides a balance between accuracy and system complexity, as demonstrated in [
17,
18], and could be extended to 3D positioning with minimal adjustments by slightly increasing the complexity.
This work presents significant advancements in indoor positioning by introducing an innovative system that employs a semi-spherical distribution of photodiodes. This approach allows us to improve the accuracy of position and orientation estimation, surpassing traditional configurations. Additionally, trilateration and angular diversity techniques have been implemented, optimizing the detection of luminaires in complex environments and ensuring superior performance in situations where other methods might fail due to the arrangement of light sources or environmental conditions. To validate the effectiveness of the proposed system, experimental tests were conducted in a controlled environment, demonstrating an average accuracy of 3 cm in position estimation, confirming the system’s reliability and precision in practical applications. In the following, the contributions of this work are summarized.
An innovative indoor positioning system using visible light communication (VLC) technology is proposed in this work. It is specifically designed to overcome the limitations of navigation systems in indoor environments.
It introduces a unique configuration of photodiodes arranged in a semi-spherical setup, which significantly improves both positional accuracy and the estimation of the receiver’s orientation.
Trilateration techniques based on the received signal strength have been integrated, and angular diversity has been leveraged to enhance orientation accuracy.
Experimental results indicate that the proposed system achieves an average positioning error of less than 3 cm and angular accuracy within 10 degrees, demonstrating its robustness even in obstructed line-of-sight conditions.
Experimental tests were conducted in a controlled environment to validate the system’s effectiveness, confirming its reliability and precision in practical applications.
This system has great potential for applications in the localization of autonomous indoor robots, such as in warehouses or supermarkets, where high navigation accuracy is required.
2. System Model
We consider a VLC system composed of
L,
, optical transmitters that provide both illumination and data transmission to a receiver composed of
N,
, photodiodes. The transmitted signal follows a frequency shift keying (FSK) modulation in which the transmission of symbol “0” corresponds to a square signal at frequency
and symbol “1” is given by the same signal at frequency
, in which
, satisfying the modulation index for a data rate
. Specifically, the transmitted signal is given by
, where
corresponds to the signal at optical transmitter
l. The signal received by the photodiode
n is denoted by
. Then, the signal received by the
N photodiodes that compose the photoreceiver, which is denoted by
, is given by
where
is the responsivity of the photodiodes, which is assumed as the same for all of them, and
is the resulting channel matrix defined as
in which
is the optical channel of photodiode
n and
is the optical channel between optical transmitter
l and photodiode
n. In (
2),
T denotes the transpose operator. Moreover, in (
1),
is the noise vector, which is assumed as additive white Gaussian noise.
2.1. Channel Model
The channel between each of the
L optical transmitters and
N photodiodes of the receiver follows the Lambertian radiation model. The optical power radiated by an LED
l at a distance
d is given by the Lambertian radiation model, which is defined as
where
is the optical power of the LED,
is the radiation angle,
d is the distance between the optical transmitter and receiver, and
m is the Lambertian index defined as
, where
is the radiation semi-angle. Notice that the optical power emitted by the LED is subject to an electrical power consumption given by
, where
is the LED efficiency, i.e., the amount of electrical power that is converted into optical power. The electrical power consumption in (
3) is given by
, where
and
correspond to the average voltage and current of the LED, which define the polarization point.
The received power at photodiode
n from a specific LED can be written as
where
is the area of detection of the photodiode,
is the incidence angle between LED
l and photodiode
n,
is the field of view (FoV) of each photodiode, which is assumed as the same for all of them for the sake of clarity, and
is the step function that relates the incidence angle with the FoV of the photodiode.
2.2. Estimation of the Position
In this work, the trilateration method based on the received power is applied to determine the position of the receiver. Basically, the trilateration method determines the position as the intersection of spheres or circles given by the distance between a given transmitter and receiver. The location of the optical transmitter
l is defined by its Cartesian coordinates,
Similarly, the position of the receiver is defined by the Cartesian coordinates
Then, considering a single transmitter, the position of the receiver corresponds to any position in the circumference or sphere defined by the following equation:
where
is the estimated distance between the receiver and the
l transmitter. The architecture of the positioning system is described in
Figure 1.
Determining the receiver’s position requires at least three equations, such as (
8). After that, the estimated position is given by the intersections of these circumferences or spheres composing a non-linear equations system. In this work, the trilateration equation systems are solved using the Matlab
function, which employs iterative algorithms to calculate the receiver’s position from a set of equations. At this point, note that the proposed set-up (described in the next section) includes four optical transmitters and an angular diversity receiver equipped with eight photodiodes distributed around the azimuthal angle, along with an additional photodiode oriented perpendicular to the ceiling. Then, the set of photodiodes can be employed as a reference signal to improve the accuracy of the estimated distance. According to the number of transmitters detected, three scenarios can be defined as detailed in
Table 2.
2.3. Influence of the Angular Diversity
Using an angle diversity receiver enables the determination of orientation, i.e., the radiation angles of the optical transmitters, based on the signals received by multiple photodiodes. Because the photodiodes share the same elevation angle, power variations are determined by the azimuthal angle, which depends on the vector between the optical transmitter and each photodiode. This approach allows us to determine the orientation angle of the optical transmitters, assigning a label to each of them.
The first step in determining the orientation of the transmitters is to identify the photodiode that maximizes the received signal. When the receiver lacks angular diversity, this is generally the photodiode nearest to the LED. However, with angular diversity, this may not always be the case.
In situations where several photodiodes maximize the received signal within a given area, a method is proposed to identify the photodiode directed toward the desired LED. Specifically, this photodiode is determined by evaluating the intensity received for it and its neighboring photodiodes. In this way, the photodiode that provides the maximum sum of its intensity and the intensity of the neighboring photodiode is selected as the valid one (main photodiode).
Once the photodiode pointing to the LED is found, the next step is to determine the angular variation concerning the transmitter. This is carried out by considering the intensities and angles of the “main” photodiode, a photodiode to its right, and a photodiode to its left. First, a straight line is drawn through the detected points of maximum and minimum intensity. Then, a line of inverse slope is drawn through the resting point (the second with the highest intensity). The intersection of these two lines allows us to determine the orientation angle of the LED, as shown in
Figure 2.
At this point, four possible scenarios emerge based on the deployment of the LEDs in the transmitter plane and the positioning of the angular diversity receiver. The angular and dimensional characteristics that apply in each case, depending on the quadrant in which the transmitter is located relative to the receiver, are described in
Table 3.
Recall that
is the radiation angle and
is the angle of the transmitter to the position in the plane so that
, where the spatial position of the
l-th transmitter is given in (
6) and the spatial position of the receiver is
. By calculating these angles and understanding their relationship to the reference plane, we can accurately determine the angular displacement of the photodiode’s zero-axis by averaging the detected angular displacements, which yields a consistent and precise measurement for properly adjusting the orientation of the semi-sphere.
3. Experimental Set-Up
This section presents the configuration characteristics of the proposed VLC positioning system, followed by a detailed description of the methodology. The experimental system designed to evaluate indoor conditions consists of a platform perpendicular to the table, located 38 cm above the top photodiode of the designed structure. On this platform, the transmitting LEDs are arranged in a square with sides measuring 20 cm and a diagonal of 28.28 cm. The transmitter also includes the drivers for modulating the FSK signals, which are generated by Arduino microcontrollers.
A stepper motor system was incorporated to enable automated scanning with the receiver, enhancing efficiency and minimizing the risk of human error. The area covered by this system comprises 30 × 30 cm, and we take 10 samples along each axis, enabling the capture of 100 data points across the scanned area.
The receiver comprises three main components: an array of photodiodes arranged in a semi-spherical configuration to ensure angular diversity, a printed circuit board (PCB) for signal conditioning tailored to the specific conditions, and a TM4C1294NCPDT microcontroller that manages system control, performs analog-to-digital conversion, and transmits the collected data to a computer via Ethernet for processing in Matlab. The detailed system diagram is described in
Figure 3.
3.1. Optical Transmitters
We consider phosphor-coated blue LEDs because of their high energy efficiency [
23] and easy implementation in hardware testbeds. In this sense, these LEDs are useful for applications that require illumination for a long time. Specifically, the optical transmitter corresponds to the LED NSPW570DS of manufacturer NICHIA. It provides a white color and a wide radiation semi-angle equal to
, which emulates the illumination in an indoor scenario. The design of the driver, which modulates the information, is based on the well-known common emitter transistor configuration. For this experiment, the transistor used was the BJT 2N2222. Notice that this approach provides greater stability in comparison with more complex polarization architectures due to the negative feedback and the independence of the polarization point at the base and collector inputs of the transistors. This approach provides more accurate control of the amplifier’s sensitivity to signal variations [
24].
After detailing the hardware configuration of the optical transmitters, the software that manages the proposed positioning system is presented. It is important to note that the signals from the four LEDs must be synchronized in time. To achieve this, a single Arduino microcontroller controls the optical transmitters, ensuring that transmission follows a continuous loop, preventing collisions, and allowing only one LED to transmit information in each time slot.
The frames transmitted by each LED are composed of 12 bits each. The first six bits represent the frame header, mainly used for synchronization. The other six bits contain information for each lamp, such as the lamp ID. In addition, due to the uniform power of these headers, it is possible to measure the intensity of the illumination at the receiver side, which allows us to determine the distance to each optical transmitter. Specifically, the information is transmitted following an FSK modulation, which provides data transmission that is resistant to interference, attenuation, or noise compared to other modulations, such as on–off keying (OOK) or pulse amplitude modulation (PAM) [
25].
The signal assigned to the transmission of the ‘1’ bit corresponds to a frequency
equal to 1 kHz, while the ‘0’ bit corresponds to a frequency
equal to 2 kHz. The bit period is equal to 5 ms for each bit, which leads to a frame comprising 60 ms of duration. The frames transmitted by each of the four LEDs are depicted in
Figure 4.
3.2. Optical Receivers
The receiver implemented in this work consists of an array of photodiodes strategically placed on a semi-spherical structure, fabricated using 3D printing. The structure has a diameter of 10 cm and a height of 4.5 cm. The photodiodes are uniformly distributed along the azimuthal angle, with a fixed elevation angle of . The receiver has eight photodiodes, and the azimuthal angle between each photodiode is . Additionally, an extra photodiode is positioned at the top of the semi-sphere.
The photodiodes used correspond to a PIN BPW21R photodiode, which is equipped with a flat glass window with a built-in color correction filter, resulting in a sensitivity near to the spectral response of the human eye, and also offers a wide angle of sensitivity, more specifically, 50 deg at half sensitivity [
26]. The angular diversity is arranged in a semi-spherical configuration, as shown in
Figure 3.
Signal conditioning is a crucial aspect when working with tiny and noise-prone signals, which is why a PCB was developed for the proposed system. The PCB is composed of four fundamental blocks,
A transistor-based amplifier with collector feedback biasing for pre-amplification of the received signal.
A first-order high-pass filter to minimize the background illumination, which introduces interference (managed at noise), e.g., other illumination sources, at a frequency of 100 Hz.
An operational amplifier in a non-inverting cascade configuration to amplify the received signal.
A resistive divider ensuring that the amplified signal remains within the valid input range of the ADC.
Specifically, the PCB contains nine modules, one for each photodiode, and is equipped with operating voltage pins and pin headers to connect the output to the ADC. The resulting PCB is shown in
Figure 5.
3.3. Capturing and Processing Data
The diagram in
Figure 6 illustrates the steps followed from data reception to the determination of the receiver’s position and orientation, highlighting the key points in signal processing and decision making. The next section will present a detailed discussion of the fundamental blocks and the main aspects considered during its development.
Several considerations were evaluated during the data capture, starting with the sequential methodology in which the transmitters send information and the frame time defined by each transmitter (60 ms). Specifically, the proposed scheme captures frames at 300 ms intervals, ensuring that all four frames, one from each optical transmitter, are received at least once within the established interval.
The received signal is digitized through the ADCs of the TM4C1294NCPDT microcontroller. The proposed microcontroller provides the necessary number of ADCs (nine) with appropriate sampling frequencies, permitting the storage of 6000 samples per ADC module, assuming a reception period of 300 ms at a sampling frequency of 20 kHz. Ethernet communication is used to transmit the data stored in the ADC buffers and to collect the resulting dataset on the computer.
Once the data are digitized and received on the computer, the first step is to apply a digital high-pass filter. Despite employing an analog filter during implementation, the high power of standard luminaires compared to transmission LEDs prevents the complete elimination of the interference with a first-order filter. The 100 Hz sinusoidal noise signal is visible in the signal shown at the top of
Figure 7, overlapping with the desired signal.
Given that the frequency components of the signal to be recovered are at 1 kHz and 2 kHz, a cutoff frequency of 900 Hz is established. This approach allows for preserving the signal of interest while effectively removing unwanted noise, as shown in the second signal of
Figure 7.
Once the signal is filtered, it is normalized by comparing it to 0 V, assigning a value of 5 V to values greater than 0 V and 0 V to values less than or equal to 0 V. This simplifies the decoding process by reducing the voltage levels to a standardized range of 0 V to 5 V. This transformation process is shown in the third signal of
Figure 7.
Without information about the start or end times of each frame transmitted, the frame is segmented into 1 ms intervals. This approach enables a detailed analysis of each millisecond and limits the time offset relative to the bit time to a maximum of one-fifth of this interval. In each 1 ms interval, the number of rising and falling edges in the signal is counted. If the sum of edges is 3 or more, the data are interpreted as 0; otherwise, they are defined as 1. As a result, there is a total of 300 points representing the sequence transmitted over a 300 ms frame. The detected dataset is then expanded to 6000 points by replacing each point with 20 identical values. To identify and eliminate disturbances that may impact decoding, the methodology concentrates on detecting and removing pulses smaller than 50 units, which is half the duration of a bit following interpolation.
The frame detection process begins with identifying the headers, which consist of five consecutive bits of value 1, easily distinguishable from the data bits. Since one bit corresponds to 100 points in the frame and accounts for phase errors or disturbances, it is compared with a value of 450 consecutive values of 1 across the entire frame to locate the start of the transmitted frames. Once the header start positions are identified, the average value from 100 values per bit in each frame is calculated, resulting in a set of detected information frames, each six bits long, for each identified header.
On the other hand, when a header is detected, the RMS value of the filtered sampled signal is measured within the same interval. Using the RMS value of the detected frame and the received data, we determine the distance and a specific position from each transmitter detected. To evaluate the effectiveness of the decoding code, we focus exclusively on the performance of the top photodiode, excluding measurements from the side photodiodes. This is because, due to the tilt of the side photodiodes, they are often oriented away from the lights in many areas, making them difficult to detect. Consequently, their measurements would not be representative of assessing their performance.
6. Conclusions
In this study, a small-scale lighting system was developed to emulate a typical indoor environment, exploiting both the spatial distribution of light and the spectrum for VLC. A semi-spherical array of photodiodes was created using 3D printing and mounted on a surface. Signal conditioning was performed using a custom-engineered circuit board and analog data from the detectors were digitized by the TM4C1294NCPDT microcontroller; after that, the obtained data were efficiently transmitted to a computer via Ethernet.
Data processing was carried out using Matlab, achieving 99% efficiency for decoding the received frames. Additionally, it successfully estimated the position and orientation angle, with an average error of 3 cm and 10°, respectively. Although these results were obtained in a small system, the absolute error is expected to hold for larger setups. The main limitation of the system will be the power of the transmitters, since the receiver power may not be enough to reach the side photodiodes in order to perform angle detection correctly. Additionally, a distance estimation method using side photodiodes was implemented to improve positioning in challenging environments where the top photodiode could not detect at least three lights. This approach allowed for detection from multiple angles, enabling an increase in the system’s reach, resulting in an average error of 6.38 cm. These results highlight the potential of the proposed approach for effective indoor positioning and orientation applications such as locating autonomous robots in a warehouse or supermarket.
It was found that the system is very robust to reflections since the algorithm searches for the photodiode with the maximum power considering its neighboring photodiodes. However, in the presence of obstacles, the behavior of the system in its current state is seriously affected. This issue may lead to detecting a false maximum power photodiode, or, even if a lateral photodiode is obstructed, the angle calculation may be degraded to such an extent that the resulting angle cannot be utilized.