The Integration of Photodiode and Camera for Visible Light Positioning by Using Fixed-Lag Ensemble Kalman Smoother

Visible Light Positioning (VLP) has become one of the most popular positioning and navigation systems in this decade. Filter-based VLP systems can provide real-time solutions but have limited accuracy. On the contrary, fixed-interval smoothers can help VLP achieve higher accuracy but require post-processing. In this article, a trade-off solution, Fixed-Lag Ensemble Kalman Smoother (FLEnKS), is proposed for VLP to achieve a semi-real-time and accurate positioning solution. The forward part of the FLEnKS is based on the Ensemble Kalman Filter (EnKF), which uses stochastic sampling with ensemble members and enables a better reflection of the features of nonlinear systems. The backward filter in the FLEnKS compensates for the estimation error from the forward filter using the linearization based on error states and further reduces the estimation error. Furthermore, multiple data from both photodiode (PD) and camera are fused in the proposed FLEnKS for VLP, which further improves the accuracy of conventional VLP with a single data source. Preliminary field test results show that the proposed FLEnKS provides a semi-real-time positioning solution with the average 3D positioning accuracy of 15.63 cm in dynamic tests.


Introduction
Visible Light Positioning (VLP) is becoming increasingly popular for indoor positioning and navigation because of its high accuracy and the extensive usage of Light Emitting Diodes (LEDs) [1].Filters such as Kalman Filter (KF) and Particle Filter (PF) are widely employed in VLP systems to improve the real-time positioning accuracy [2].Since filters only use current and previous information [3][4][5][6][7], it is worthwhile to use other techniques such as smoothing to further improve the localization accuracy and robustness.'Localization' mentioned in this article refers to locating a receiver.
Smoothing algorithms can use previous, current, and future information for localization, which improves the positioning accuracy but introduces latency.Smoothing is commonly used instead of real-time localization for post-mission applications.To the best of the authors' knowledge, the smoothing technique has not been used in the VLP except our previous work [8].It is challenging to propose a smoother to improve positioning accuracy with acceptable latency.For VLP applications, the smoother should have the following capabilities: (a) real/semi-real time; (b) high-accuracy localization; and (c) possible application to non-linear systems.
The existing smoothers can be classified into three groups: fixed-interval smoother, fixed-point smoother, and fixed-lag smoother [9].The fixed-interval smoother requires the estimates of entire data samples and can only be used offline [8].The fixed-tablepoint smoother is often used to calibrate the estimation results of a certain point.The fixed-lag smoother uses a sliding window to smooth the estimation results of several previous points, which can provide a semi-real-time solution.Thus, the fixed-lag smoother is more appropriate for real/semi-real time positioning, localization, and tracking applications.
A Fixed-Lag Kalman Smoother (FLKS) is proposed in [10] for the sequential estimation of atmospheric carbon dioxide fluxes.The FLKS steps through an inversion in multiple steps, and the covariance information between sequential sets of fluxes is saved.However, FLKS is based on KF and only can be employed for a linear problem, which is not appropriate for VLP.To deal with non-linear systems, a Fixed-Lag Extended Kalman Smoother (FLEKS) is proposed in [11] based on the Extended Kalman Filter (EKF).However, EKF converts the nonlinear model into an approximate linear model through Taylor series expansion, which produces truncated errors [12].
A study [13] derives a Fixed-Lag Sigma-Point Kalman Smoother (FLSPKS) including a forward and a backward filter for indoor localization.The forward filter is a standard Sigma-Point Kalman Filter (SPKF) using the Weighted Statistical Linear Regression (WSLR) [14].Thus, the backward filter can be formulated without inverting the nonlinear dynamics.The SPKF is a deterministic sampling algorithm with certain sample points.In the SPKF, the number of the sample points is of the same order as the dimension of the system state vector, which cannot precisely reflect the states of high-dimensional and nonlinear systems.
To reflect the system states more precisely, an article [15] proposed a fixed-lag Particle Smoother (PS).The PF used in PS applies a stochastic sampling algorithm.Similar to the PS, the Ensemble Kalman Smoother (EnKS) based on the Ensemble Kalman Filter (EnKF) also uses model trajectories called either particles or ensemble members to track the true solution of the system.The EnKF samples the points randomly with ensemble members to realize the numerical computation of the state covariance matrix, which better reflects the states of non-linear systems than the SPKF.The EnKF has been widely used in high-order and nonlinear meteorology and geology models [16] because of its high accuracy.Besides, the EnKF is an approximated version of the PF without the step involving importance weights [17], which means the EnKS is less complex than PS.Considering the accuracy and positioning latency, the fix-lag EnKS is adopted in this article.
Since the smoothing technique has not been used in VLP systems except our previous work [9], in this article, a novel fixed-lag smoother based on EnKF is proposed to achieve better positioning accuracy at the cost of acceptable positioning latency.The main contributions of this article are summarized as follows:

•
A novel fixed-lag EnKS (FLEnKS) is proposed in this article for semi-real-time VLP.The FLEnKS uses a sliding analysis window of several points to realize semi-real-time positioning.Besides, the FLEnKS applies a two-filter structure, in which a forward EnKF with Statistical Linear Regression (SLR) and a backward modified Information Kalman Filter (IKF) with error states are performed.The backward filter compensates the estimation error of the forward filter to improve accuracy.Moreover, the proposed FLEnKS adopts SLR instead of WSLR to reduce the complexity.

•
The data from both photodiode (PD) and camera are fused in the proposed FLEnKS for VLP, which further improves the accuracy of the conventional VLP with a single data source.For the purpose of comparison, other fixed-lag smoothers proposed in previous articles are also implemented in this research.Compared to the existing smoothing techniques, the proposed FLEnKS provided more accurate localization solutions, especially at corners.
The rest of this article is organized as follows.The FLEnKS algorithm is presented in Section 2. The application of FLEnKS in the VLP system is described in Section 3. The experimental results and analysis are discussed in Section 4, and the conclusions are presented in Section 5.

Fixed-Lag Ensemble Kalman Smoother
This section presents the algorithm of the proposed FLEnKS based on the two-filter architecture.In each analysis window of L epochs, FLEnKS includes an EnKF with SLR as the forward part and a modified IKF as the backward part, respectively.The process of the FLEnKS is shown in Figure 1.
In Figure 1, the present time epoch is illustrated in black solid circles.In each analysis window with L epochs, the forward filter (i.e., the EnKF) processes the data samples sequentially, and the backward filter (i.e., the IKF) reversely processes the data samples to compensate the estimation error of the forward filter.The smoother combines the update estimation of the forward filter and the prediction estimation of the backward filter to provide a more accurate estimation.Then, the analysis window shifts by one epoch forward to the next analysis window and repeats the smoother algorithm until the final epoch.The details of the forward and backward filters and the smoother are shown in this section.The rest of this article is organized as follows.The FLEnKS algorithm is presented in Section II.The application of FLEnKS in the VLP system is described in Section III.The experimental results and analysis are discussed in Section IV, and the conclusions are presented in Section V.

Fixed-Lag Ensemble Kalman Smoother
This section presents the algorithm of the proposed FLEnKS based on the two-filter architecture.In each analysis window of L epochs, FLEnKS includes an EnKF with SLR as the forward part and a modified IKF as the backward part, respectively.The process of the FLEnKS is shown in Figure 1.In Figure 1, the present time epoch is illustrated in black solid circles.In each analysis window with L epochs, the forward filter (i.e., the EnKF) processes the data samples sequentially, and the backward filter (i.e., the IKF) reversely processes the data samples to compensate the estimation error of the forward filter.The smoother combines the update estimation of the forward filter and the prediction estimation of the backward filter to provide a more accurate estimation.Then, the analysis window shifts by one epoch forward to the next analysis window and repeats the smoother algorithm until the final epoch.The details of the forward and backward filters and the smoother are shown in this section.

Time Epoch
Backward Filter The process of the fixed-lag ensemble Kalman smoother (FLEnKS) algorithm.

State-Space Model
The positioning problem can often be described as an estimation problem of the state of a discrete-time nonlinear dynamic system, and the nonlinear state-space model at the epoch k is often described as follows:  () where To linearize the nonlinear state-space model, SLR [18] is applied in FLEnKS.In a statistical sense, SLR achieves better accuracy for linearization than Taylor series expansion.Moreover, when compared with the WSLR used in [13], SLR is simpler with less computation.The statistically linearized state-space model is given by where A , B are the statistical linearization parameters, ε is the linearization error modeled by zero- mean Gaussian noise with covariance  P .The subscript f represents the parameters related to the

State-Space Model
The positioning problem can often be described as an estimation problem of the state of a discrete-time nonlinear dynamic system, and the nonlinear state-space model at the epoch k is often described as follows: where x k ∈ R n×1 is the state vector, z k ∈ R m×1 is the measurement vector, ω k ∈ R n×1 , and η k ∈ R m×1 represent the zero-mean Gaussian process noise and the measurement noise with covariance Q k and R k , respectively; f (•) is the dynamic model function, and h(•) is the measurement model function.
To linearize the nonlinear state-space model, SLR [18] is applied in FLEnKS.In a statistical sense, SLR achieves better accuracy for linearization than Taylor series expansion.Moreover, when compared with the WSLR used in [13], SLR is simpler with less computation.The statistically linearized state-space model is given by where A,B are the statistical linearization parameters, ε is the linearization error modeled by zero-mean Gaussian noise with covariance P ε .The subscript f represents the parameters related to the dynamic model Equation ( 1), the subscript h represents the parameters related to the measurement model Equation ( 2), and the subscripts k and k+1 represent the time epochs.The statistically linearized state-space model is applied to obtain the formulation for the backward filter.

Forward Filter
The forward filter is an EnKF with SLR.The algorithm of EnKF is given as follows.

Initialization
Generate the initial estimation of an ensemble of N vectors x 0,i ∈ R n×1 (i = 1, 2, . . ., N) with random sample errors of Gaussian distribution.

Prediction
Let x − i and x + i define the ith predicted state and updated state, respectively, and P − k+1 is the ensemble error covariance of the prediction state at time k+1.Then, the prediction equations are given as In this step, x + k+1,i is the update state at time k+1, and P + k+1 is the corresponding ensemble error covariance.The update equations are where z k+1 is the real measurement data at time k+1, ẑk+1 is the predicted measurement calculated from the prediction state, and K k+1 is the Kalman gain.The variables are given as follows.

Statistical Linearization Of f (•) and h(•)
The following list shows the definitions of the variables in Equations ( 3) and (4) as These parameters will be used in the backward filter.The detailed derivation can be found in [18].

Backward Filter
An IKF is used to estimate the states backwards in time with the statistically linearized state-space model in Equation ( 3) and ( 4).Compared with the conventional algorithms, the IKF used in this article is formulated using the error vector of the forward EnKF and it also takes the error covariance P ε into consideration, while the conventional IKF uses normal state vector and ignores the error covariance P ε . Let , and P + k,b define the prediction and update state vectors and their corresponding error covariance matrices at time k estimated in the backward filter, respectively.To simplify the calculation, the state estimated in the forward filter and used in this subsection is the mean state vector; therefore, we denote the predicted state vector at time k estimated in the forward filter as , and their corresponding ensemble error covariance matrices as P − k, f = P − k and P + k, f = P + k .Since the backward nominal trajectory [19] estimates are predetermined as the forward predictions, a series of expressions are given in the following equations to describe the relationship between the states estimated in the forward filter and backward filter: where x NOM denotes the states of the nominal trajectory, and δx is the corresponding error state.Finally, the algorithm of the IKF is given as follows.

Initialization
To avoid undesirable matrix inversions and provide a valid boundary initialization, the following new variables in IKF are defined as follows: where M b is the information matrix, δy b is the inverse error state, and δx b is the error state vector.
In the backward filter, we derivate the equation of δy b with M b , the states in the forward filter, and the parameters from SLR.The initialization of the IKF is given by: where Γ is the final epoch of the forward filter and the start epoch of the backward filter, and 0 is the zero matrix/vector.

Prediction
The discrete-time IKF prediction equation is derived by using the newly defined variables and the statistically linearized state-space model in Equation (3) as follows: According to [20], M − k,b can be obtained and simplified by where K k,b is the backward Kalman gain matrix as follows: By applying Equations ( 3), ( 22), ( 23), (25), and ( 27), the prediction equation of the error state vector is then given by δy

Update
According to the update equations of the standard IKF in [21], the modified update equations of error covariance M + k,b and state vector y + k,b using the newly defined variables with SLR are given as follows: where z k is the real-measurement data.By applying Equations ( 22), (29), and (30), the update equation of the error state vector is then given by

Smoothing
The smoothing step combines the update estimation x + k, f and its corresponding ensemble error covariance matrix P + k, f of the forward filter and the prediction estimation δy − k,b and its corresponding inverse error covariance M − k,b of the backward filter.The smoothing estimate x k,s can be given as follows: where . Thus, the smoothing estimate x k,s incorporates measurement data from the forward and backward filters to provide a more accurate estimate.The general algorithm of FLEnKS is described in Algorithm 1.

Application to Visible Lighting Positioning
The proposed FLEnKS is applied to a VLP system that is based on PD and camera.In the proposed VLP system, both the Received Signal Strength (RSS) detected by the PD and the moving speed and the distances from certain Light Emitting Diodes (LEDs) to the receiver extracted from the videos captured by the camera, are used as measurements to improve the positioning accuracy.In this section, the state-space models, including the system model and measurement model defined in Equations ( 1) and ( 2), are discussed explicitly for the proposed VLP system.

System Model
To estimate the target location, the ith state vector in the state ensemble x k is given as follows: where x,y, and z are 3D coordinates of the target; v x , v y , and v z are the corresponding velocity components.A random walk formulation is used to model the system noise, and the system model is expressed as follows: where ∆t is the time difference between two epochs; ω k is the process noise with the corresponding covariance matrix Q k , which characterizes the possible random changes in the state vector and is given as follows:

Measurement Model
The specific measurement vector in the proposed VLP system includes the information detected from both PD and camera, which is given by where v is the moving speed of the receiver, which can be extracted from the camera-captured video [22]; d i (i = 1, 2, . . ., m) represents the distance from the receiver to each observed LED and can be described as follows: where (x L i , y L i , z L i ) is the 3D coordinates of the ith LED, and (x, y, z) is the receiver's location.The distance d i can be converted from the RSS values that are detected by the PD and calculated on the basis of the geometric relationships in the video that are captured by the camera.Refer to [1] for more information about how to obtain d i .
The measurement model is then given as follows: where η k is the measurement noise, and its corresponding covariance matrix R k is given as follows: where δ 2 k,i (i = 1, 2, . . ., m) is the variance of the ith measurement, which is learned from the measurements.

Experiment Setup
As shown in Figure 2, the size of the experiment area was 5 m × 5 m × 2.84 m.Five LEDs (CREE T6) were mounted evenly on the ceiling as light beacons.The power of each LED was 10 W, and the 3D coordinates of the LEDs in meters were (0.5, 0.5, 2.84), (2.5, 2.5, 2.84), (0.5, 4.5, 2.84), (4.5, 0.5, 2.84), and (4.5, 4.5, 2.84), respectively.An STM32 Microcontroller Unit (MCU) was applied to control the LEDs using Frequency Division Multiplexing (FDM) protocols.In Figure 3, the receiver used in the experiments contained an OPT101 PD and a front camera of a smartphone.Two sensors were placed closely and mounted on a remotely controlled mobile robot at a height of 1.25 m.The parameters of the receiver are summarized in Table 1.During the experiments, the robot moved along the pre-marked routes.Two different trajectories (i.e., rectangle and triangle) were tested to evaluate the dynamic performance of the proposed FLEnKS.In Figure 3, the receiver used in the experiments contained an OPT101 PD and a front camera of a smartphone.Two sensors were placed closely and mounted on a remotely controlled mobile robot at a height of 1.25 m.The parameters of the receiver are summarized in Table 1.During the experiments, the robot moved along the pre-marked routes.Two different trajectories (i.e., rectangle and triangle) were tested to evaluate the dynamic performance of the proposed FLEnKS.In Figure 3, the receiver used in the experiments contained an OPT101 PD and a front camera of a smartphone.Two sensors were placed closely and mounted on a remotely controlled mobile robot at a height of 1.25 m.The parameters of the receiver are summarized in Table 1.During the experiments, the robot moved along the pre-marked routes.Two different trajectories (i.e., rectangle and triangle) were tested to evaluate the dynamic performance of the proposed FLEnKS.

The Parameter Setup of FLEnKS
In the experiments, the time difference ∆t between two epochs was 0.5 s, which was limited by the frequencies of the LEDs and the analog-to-digital converter.In future work, ∆t will be configured to a shorter value by using a controller with higher performance.To evaluate the influence of the ensemble members on FLEnKS, different numbers of ensemble were selected with other parameters unchanged.The relationship between different ensemble members and the mean positioning errors of the FLEnKS can be seen in Figure 4.In Figure 4, with the increase of the ensemble members, the mean error is reduced.However, the improving rate slows down when the ensemble members are over 100.Thus, considering the trade-off between the accuracy and the complexity, the ensemble members were set to 100 in this research.
of the ensemble members on FLEnKS, different numbers of ensemble were selected with other parameters unchanged.The relationship between different ensemble members and the mean positioning errors of the FLEnKS can be seen in Figure 4.In Figure 4, with the increase of the ensemble members, the mean error is reduced.However, the improving rate slows down when the ensemble members are over 100.Thus, considering the trade-off between the accuracy and the complexity, the ensemble members were set to 100 in this research.The performance of FLEnKS with different sizes of the analysis window (L) was also evaluated, and the relationship between different sizes of L and the mean positioning errors of the FLEnKS are shown in Figure 5.The maximum L was set to 5 in the evaluation, as the introduced latency by FLEnKS should be acceptable (<3 s).In Figure 5, at the beginning, with the increase of the length of L, the mean positioning error is reduced as more measurements are fused in the smoother.However, when the analysis window size L > 3 (i.e., the analysis window is larger than 1.5 s as  0.5 ts ), the positioning measurements may vary largely.Thus, the measurements from a large analysis window will reduce the positioning accuracy.In the experiments, the size of the analysis window in FLEnKS was set to =3 L , that is to say, the positioning results processed by FLEnKS had a positioning latency of 1.5 s during the experiments, which is acceptable for many semi-real applications.

Comparison of PD-Only Positioning and PD-camera Data Fusion
To evaluate the performance of the PD-camera data fusion proposed in this article, two kinds of trajectories were tested based on PD-only positioning and PD-camera data fusion, respectively.Since this subsection focuses on the positioning performance by using different measured data, all the trajectories were processed by the proposed FLEnKS algorithm using PD-only and PD-camera measurements for better comparison.The 3D positioning results are depicted in Figure 6.The Mean Positioning Error (MPE) and Root-Mean-Square Error (RMSE) are shown in Table 2 in detail.The performance of FLEnKS with different sizes of the analysis window (L) was also evaluated, and the relationship between different sizes of L and the mean positioning errors of the FLEnKS are shown in Figure 5.The maximum L was set to 5 in the evaluation, as the introduced latency by FLEnKS should be acceptable (<3 s).
of the ensemble members on FLEnKS, different numbers of ensemble were selected with other parameters unchanged.The relationship between different ensemble members and the mean positioning errors of the FLEnKS can be seen in Figure 4.In Figure 4, with the increase of the ensemble members, the mean error is reduced.However, the improving rate slows down when the ensemble members are over 100.Thus, considering the trade-off between the accuracy and the complexity, the ensemble members were set to 100 in this research.The performance of FLEnKS with different sizes of the analysis window (L) was also evaluated, and the relationship between different sizes of L and the mean positioning errors of the FLEnKS are shown in Figure 5.The maximum L was set to 5 in the evaluation, as the introduced latency by FLEnKS should be acceptable (<3 s).In Figure 5, at the beginning, with the increase of the length of L, the mean positioning error is reduced as more measurements are fused in the smoother.However, when the analysis window size L > 3 (i.e., the analysis window is larger than 1.5 s as  0.5 ts ), the positioning measurements may vary largely.Thus, the measurements from a large analysis window will reduce the positioning accuracy.In the experiments, the size of the analysis window in FLEnKS was set to =3 L , that is to say, the positioning results processed by FLEnKS had a positioning latency of 1.5 s during the experiments, which is acceptable for many semi-real applications.

Comparison of PD-Only Positioning and PD-camera Data Fusion
To evaluate the performance of the PD-camera data fusion proposed in this article, two kinds of trajectories were tested based on PD-only positioning and PD-camera data fusion, respectively.Since this subsection focuses on the positioning performance by using different measured data, all the trajectories were processed by the proposed FLEnKS algorithm using PD-only and PD-camera measurements for better comparison.The 3D positioning results are depicted in Figure 6.The Mean Positioning Error (MPE) and Root-Mean-Square Error (RMSE) are shown in Table 2 in detail.In Figure 5, at the beginning, with the increase of the length of L, the mean positioning error is reduced as more measurements are fused in the smoother.However, when the analysis window size L > 3 (i.e., the analysis window is larger than 1.5 s as ∆t = 0.5s), the positioning measurements may vary largely.Thus, the measurements from a large analysis window will reduce the positioning accuracy.In the experiments, the size of the analysis window in FLEnKS was set to L = 3, that is to say, the positioning results processed by FLEnKS had a positioning latency of 1.5 s during the experiments, which is acceptable for many semi-real applications.

Comparison of PD-Only Positioning and PD-camera Data Fusion
To evaluate the performance of the PD-camera data fusion proposed in this article, two kinds of trajectories were tested based on PD-only positioning and PD-camera data fusion, respectively.Since this subsection focuses on the positioning performance by using different measured data, all the trajectories were processed by the proposed FLEnKS algorithm using PD-only and PD-camera measurements for better comparison.The 3D positioning results are depicted in Figure 6.The Mean Positioning Error (MPE) and Root-Mean-Square Error (RMSE) are shown in Table 2 in detail.
As shown in Figure 6 and Table 2, both trajectories showed that PD-camera data fusion improved the positioning accuracy when compared to the PD-only positioning.The performance of PD-only positioning suffered from degradation in the corners.On the other hand, the measurements from the camera were more stable as they were obtained from the image features.Thus, PD-camera data fusion, which used the measurements from both PD and camera, achieved more accurate positioning performance.
As shown in Figure 6 and Table 2, both trajectories showed that PD-camera data fusion improved the positioning accuracy when compared to the PD-only positioning.The performance of PD-only positioning suffered from degradation in the corners.On the other hand, the measurements from the camera were more stable as they were obtained from the image features.Thus, PD-camera data fusion, which used the measurements from both PD and camera, achieved more accurate positioning performance.
(a) (  To evaluate the performance of the proposed FLEnKS, it was compared with the traditional EnKF [23] to process two trajectories by using measurements from both PD and camera.The 3D positioning results by using FLEnKS and EnKF and both PD and camera measurements are shown in Figure 7.As shown in Figure 7, the positioning results using the FLEnKS were smoother and closer to the ground truth than those using the EnKF, especially at the corners.It is because the system states (e.g., speed) and noises (e.g., process noise and measurement noise) were significantly changed at the corner areas.When compared to the EnKF, FLEnKS applies a two-filter structure.The backward filter of FLEnKS reversely processes the data samples by epoch to include the measurements after time k and compensates the estimation errors of the forward filter at time k.Thus, at the corner areas,  To evaluate the performance of the proposed FLEnKS, it was compared with the traditional EnKF [23] to process two trajectories by using measurements from both PD and camera.The 3D positioning results by using FLEnKS and EnKF and both PD and camera measurements are shown in Figure 7.As shown in Figure 7, the positioning results using the FLEnKS were smoother and closer to the ground truth than those using the EnKF, especially at the corners.It is because the system states (e.g., speed) and noises (e.g., process noise and measurement noise) were significantly changed at the corner areas.When compared to the EnKF, FLEnKS applies a two-filter structure.The backward filter of FLEnKS reversely processes the data samples epoch by epoch to include the measurements after time k and compensates the estimation errors of the forward filter at time k.Thus, at the corner areas, the backward filter can integrate the measurements after the corner into the forward filter to better reduce the effects of the changed system states and noises.The two-filter FLEnKS provides a smoother estimation solution by using more measurements than the traditional filter algorithms and achieves better positioning results.
reduce the effects of the changed system states and noises.The two-filter FLEnKS provides a smoother estimation solution by using more measurements than the traditional filter algorithms and achieves better positioning results.
The MPE and RMSE of these two trajectories are summarized in Table 3.The MPEs of the FLEnKS were 9.70 % and 16.54 % lower than the those of EnKF in the rectangle and triangle trajectory, respectively.Furthermore, the RMSEs of EnKF were reduced by 5.20 % and 14.88 %, respectively, in two trajectories when the FLEnKS was adopted.To further evaluate the performance of the proposed FLEnKS, other fixed-lag smoothers proposed in previous works were applied to the VLP system in this article using both PD and camera measurements.The evaluated smoothers included the FLEKS in [11], the FLSPKS proposed in [13], and the FLEnKS proposed in this article.The MPE and RMSE of these two trajectories are summarized in Table 3.The MPEs of the FLEnKS were 9.70% and 16.54% lower than the those of EnKF in the rectangle and triangle trajectory, respectively.Furthermore, the RMSEs of EnKF were reduced by 5.20% and 14.88%, respectively, in two trajectories when the FLEnKS was adopted.To further evaluate the performance of the proposed FLEnKS, other fixed-lag smoothers proposed in previous works were applied to the VLP system in this article using both PD and camera measurements.The evaluated smoothers included the FLEKS in [11], the FLSPKS proposed in [13], and the FLEnKS proposed in this article.
As shown in Table 4, the positioning results using the FLEnKS consistently outperformed those obtained with the other smoothers.The EKF converts the nonlinear model into an approximate linear model through Taylor series expansion, which produces truncated errors.The SPKF is a deterministic sampling algorithm with certain sample points to reflect the nonlinear model.On the other hand, the EnKF using stochastic sampling with more ensemble members can better reflect the features of a nonlinear system and get better estimates than the EKF and SPKF.Thus, the FLEnKS using the EnKF as a forward filter can achieve better positioning results than the FLEKS and FLSPKS, which are based on EKF and SPKF, respectively.Furthermore, the backward filter of the two-filter FLEnKS is based on the error state vectors, while the FLEKS and FLSPKS use normal state vectors.The consideration of error states will be more suitable for applications focusing on errors, such as positioning.Considering the average MPE in the two trajectories, the MPE of FLEnKS was 33.18% and 25.47% lower than those of FLEKS and FLSPKS, respectively.Furthermore, the RMSE of FLEnKS was 30.95% and 19.95% lower than those of FLEKS and FLSPKS, respectively.Overall, the proposed FLEnKS achieved the best positioning performance, and the average 3D positioning accuracy was 15.63 cm in two trajectories with PD-camera data fusion.

Evaluation of Different Speeds
To evaluate the performance of FLEnKS at different speeds, extra experiments were conducted at a speed around 0.5 m/s faster and a speed around 0.5 m/s slower than those in the previous experiments.The MPE and RMSE at three different speeds are summarized in Table 5.In Table 5, the FLEnKS was applied to the VLP system using both PD and camera measurements at different speeds, and the medium speed means the positioning results mentioned in Sections 4.2.2-4.2.4.The MPE results showed that positioning accuracy was increased when the speed was lower.Since the time difference ∆t stayed unchanged during the tests, a slower speed would produce more stable system measurements and provide better positioning results.However, the MPE and RMSE results imply that the speed difference was not a significant factor affecting the positioning accuracy.

Comparison of Existing VLP Systems
Table 6 shows the comparison of the VLP system proposed in this article with other related systems.As shown in Table 6, our proposed VLP system based on FLEnKS achieved better 3D positioning results with an ordinary PD and a low-cost camera.

Conclusions
The FLEnKS proposed in this article is a semi-real-time smoother, which can meet the requirements for many positioning, localization, and tracking systems and improve their positioning accuracy.The forward part of the FLEnKS is based on stochastic sampling with ensemble members, which enables a better reflection of the features of nonlinear systems and better estimates than the smoothers based on SPKF using deterministic sampling with certain samples and EKF using Taylor series expansion.The backward filter in the FLEnKS compensates for the estimation error from the forward filter using the linearization based on error states and further reduces the estimation error.The proposed FLEnKS was practically evaluated in the VLP system by fusing the measurements from PD and camera, and preliminary experimental results showed the proposed FLEnKS improved the 3D positioning accuracy by 33.18% and 25.47% when compared to FLEKS and FLSPKS, respectively.Meanwhile, the fusion of PD and camera measurements improved the average positioning accuracy by 20.08% when compared to PD-only schemes.The experiments in the article were conducted in a 5 m × 5 m × 2.84 m area, which is the normal size for evaluating VLP systems.A larger positioning area will be evaluated in future work, considering obstruction and interference problems.
-mean Gaussian process noise and the measurement noise with covariance k Q and k R , respectively;  () f is the dynamic model function, and  () h is the measurement model function.

Figure. 3 .
Figure. 3. The mobile robot and receiver module: (a) Mobile robot and (b) Receiver module installed on the mobile robot.

Figure 3 .
Figure 3.The mobile robot and receiver module: (a) Mobile robot and (b) Receiver module installed on the mobile robot.

Figure. 4 .
Figure. 4. The relationship between positioning accuracy and ensemble members.

Figure. 5 .
Figure. 5.The relationship between positioning accuracy and analysis window (L) size.

Figure 4 .
Figure 4.The relationship between positioning accuracy and ensemble members.

Figure. 4 .
Figure. 4. The relationship between positioning accuracy and ensemble members.

Figure. 5 .
Figure. 5.The relationship between positioning accuracy and analysis window (L) size.

Figure 5 .
Figure 5.The relationship between positioning accuracy and analysis window (L) size.

Figure. 6 .
Figure. 6.The estimated trajectories based on PD-only positioning and PD-camera data fusion.(a) Rectangle trajectory, (b) Triangle trajectory, (c) Rectangle Z-axis results, and (d) Triangle Z-axis results.

Figure 6 .
Figure 6.The estimated trajectories based on PD-only positioning and PD-camera data fusion.(a) Rectangle trajectory, (b) Triangle trajectory, (c) Rectangle Z-axis results, and (d) Triangle Z-axis results.

Table 2 .
Positioning Errors of PD-Only Positioning and PD-Camera Data Fusion.MPE: Mean Positioning Error, RMSE: Root-Mean-Square Error.

Table 2 .
Positioning Errors of PD-Only Positioning and PD-Camera Data Fusion.MPE: Mean Positioning Error, RMSE: Root-Mean-Square Error.

Table 5 .
MPE and RMSE at Different Speeds.

Table 6 .
Comparison of the Proposed Visible Light Positioning (VLP) System with Other Existing Systems.