Improving the Accuracy of Under-Fog Driving Assistance System

Show more

1. Introduction

Driving under the present of thick fog is one of the most hazardous situations. The driver’s visibility distance decreases exponentially as fog density increases; however drivers tend to overestimate their visibility and drive with excessive speeds. A lack of adherence of some drivers to traffic instructions during fog also contributes to the high statistics. Statistics on traffic accident during fog in Saudi Arabia is quite high. A lack of adherence of some drivers to traffic instructions during fog contributes to the high statistics. Albaha is among the region in Saudi Arabia that is affected and often enveloped in thick fog during the winter. Researchers in Albaha have developed driver assistance system (DAS) under fog condition, named No_Collision [1]. Due to the minimum infrastructure of the traffic in Albaha, the system relies on GPS system of mobile phone and connects to a server using Internet and predicts the distance/position and velocity of other surrounding vehicles using Kalman Filter. Nevertheless, the system still faces accuracy problem in the prediction. This paper attempts to improve the accuracy for the position and velocity prediction by combining Kalman Filter method and Fuzzy logic technique. Many research works on DAS under fog have been carried out, including the use of traditional and intelligent techniques such as works in [2] [3] [4] [5]. Nevertheless, the works are based sensors, camera as well as other modern/intelligent traffic infrastructures. Acosta and Toloza [6] use a low cost GPS tool with differential relative positioning way with the aim to increase the accuracy of the positioning. They combine Fuzzy logic, Kalman Filter variations and information selection, variations of Kalman Filter, fuzzy logic and information selection. The experimental results show that the proposed procedure improves the accuracy of a standard market GPS (Global Positioning System) receiver from 10 - 15 meters to up to 0.2 - 1 meter. Many other works carry out similar researches with different approaches, from using traditional techniques such as Kalman Filter to modern/intelligent techniques such as Neural Network, fuzzy logic, smart image processing, etc. [7] - [16]. This paper extends the work in [1] and adopts the idea of the work in [6] to develop an intelligent engine that improves the accuracy of the position and velocity prediction and incorporate the engine into the existing under fog driving assistance system (No_Collision Apps.)

2. Research Method

2.1. Position and Speed Estimation

This work follows the method used in [2] and employs a two-stage Bayesian filter to track the vehicle’s position and use smartphone inertial sensors combined with standard Kalman filter to estimate movement heading. Algorithm 1 represents the procedure.

*Algorithm* 1

Step 1: Calculating safe distance and speed from received GPS data (based on [2])

Input: State and weight of each smartphone;

Output: Location estimation;

Get initial position and uncertainty from individual position data or mean of anchors positions;

Initialize smartphones’ position randomly (3σ area around initial position) and weights uniformly;

For each time instance do;

Get speed measurements;

Get position change from Kalman Filter;

End For

For each smartphone do;

Sample speed error;

Sample heading error;

Calculate distance;

Update position;

End For

Step 2: for Case straight road (see Figure 1)

Get the geo fence of the anchor vehicle;

Compute the intersection location;

Compute the velocity;

Display the vehicle in the Quadrant.

This paper chooses the Kalman Filter for tracking and prediction because it has been recognized as the optimal solution for tracking and data prediction problems [17] [18]. Equation (1) to Equation (5) represent the Kalman Filter recursive algorithm for prediction.

Kalman Gain: ${K}_{k}=K{{P}^{\prime}}_{k}{H}^{\text{T}}/\left(H{{P}^{\prime}}_{k}{H}^{\text{T}}+R\right)$ (1)

Update Estimate: ${\stackrel{\dot{}}{x}}_{k}={{\stackrel{\dot{}}{x}}^{\prime}}_{k}+{K}_{k}\left({z}_{k}-H{{\stackrel{\dot{}}{x}}^{\prime}}_{k}\right)$ (2)

Update Covariance: ${P}_{k}=\left(I-{K}_{k}H\right){{P}^{\prime}}_{k}$ (3)

Project into *k* + 1:
${{\stackrel{\dot{}}{x}}^{\prime}}_{k+1}={\Phi}_{{\stackrel{\dot{}}{x}}_{k}}$ (4)

${P}_{k+1}=\Phi {P}_{k}{\Phi}^{\text{T}}+Q$ (5)

(a) (b)

Figure 1. Illustration of the scenario: Geometry of anchors and V_{0} during the trip: (a) in one lane or (b) in two lanes.

where:

*K* = Kalman Gain.

*P _{k}* = the error covariance matrix at time k.

*H* *=* the noiseless connection between the state vector and the measurement vector.

*Q* *=* covariance between the two noise models.

Φ = the state transition matrix of the process from the state at k to the state at k + 1.

${{\stackrel{\dot{}}{x}}^{\prime}}_{k+1}$ = state projection at time k + 1.

2.2. No_Collision System Architecture

Figure 2 depicts the flowchart of the No_Collision system [1].

The system starts with the smartphone in the anchor vehicle captures its GPS location data (latitude, longitude, and speed) and sends it to the server. The server then broadcast the location to each vehicle in the region. Then by using the geo-fence library, the mobile app computes any intersections with other vehicles in its Quadrant thru the computation of relative distance between the intersection vehicles to itself. If intersections happened, the server will notify the anchor vehicle all the vehicles’ location in its Quadrant. The author set the threshold of the geo-fence as an area with the radius of less than 100 meters. The server defines the Quadrant. From the world map library in MongoDB, the author divides the area into Quadrant with certain criteria such as (a, b) < Qn < (c, d), where (a, b) and (c, d) are tuples of (latitude, longitude). Then, based on the latitude and longitude values, the author groups the vehicles into the Quadrants. The author also set the minimum distance among vehicles is 5 meters. The proposed system uses client-server configuration as depicted in Figure 3 [1].

Figure 2. No_Collision application architecture [1].

Figure 3. Client-server configuration of No_Collision Apps.

Figure 4 depicts the screenshot of the initial GUI of the mobile app. When the intersection happened, the server sends notification to the anchor vehicle that other vehicle(s) at a certain latitudes and longitudes. It appears at the bottom of the screen.

2.3. Fuzzy Logic for Improving the Accuracy

This work uses fuzzy logic to prevent the Kalman filter divergence. Hence, the system adjusts the covariance matrix of the model measurement noise in real time fashion to shape it close to the real value, and ultimately escape the divergence of the Kalman filter. Thus, this work modifies the noise covariance matrix of the model to

$R=\alpha {R}^{\prime}$ (6)

where α is the adjustment factor obtained from the fuzzy logic. Rewrite the iterative filtering algorithm in (1) as

${K}_{k}=K{{P}^{\prime}}_{k}{H}^{\text{T}}/\left(H{{P}^{\prime}}_{k}{H}^{\text{T}}+\alpha {R}^{\prime}\right)$ (7)

In Equation (7), the Kalman filter develops an adaptive capability and improves the accuracy of the last estimation.

The main output parameter of the GPS receiver is Position dilution of precision (PDOP). The PDOP represents directly the accuracy of the positioning. Therefore, PDOP reflects the change of the covariance matrix of the measurement noise R. Thus, this work defines the formula for PDOP to adjust the value of α as shown in Equation (8) [19].

$\text{PDOP}=\frac{1}{{\sigma}_{X}^{2}}\sqrt{{\sigma}_{X}^{2}+{\sigma}_{Y}^{2}+{\sigma}_{Z}^{2}}$ (8)

where σ is the pseudo-range error factor, σ_{x}, σ_{y} and σ_{z} are the positioning errors in the earth coordinate system on the three axes (x-y-z), correspondingly.

Figure 4. Initial GUI of No_Collision Apps.

This work uses Sugeno fuzzy logic system with the rational that the system has already been applied in many fields, it is easy to be implemented and it is more efficient compared to other fuzzy systems. In addition it can generate complex non-linear function with only a few language rules [20]. Authors in [21] [22] give the overall expression of Sugeno fuzzy system as follows.

$\begin{array}{l}{R}^{\left(i\right)}:\text{if}\text{\hspace{0.17em}}\text{\hspace{0.05em}}{x}_{1}\u20ac{{A}^{\prime}}_{1}\text{\hspace{0.17em}}\text{\hspace{0.05em}}\text{and}\text{\hspace{0.17em}}\text{\hspace{0.05em}}{x}_{2}\u20ac{{A}^{\prime}}_{2}\text{\hspace{0.17em}}\text{\hspace{0.05em}}\text{and}\text{\hspace{0.17em}}\text{\hspace{0.05em}}\cdots \text{\hspace{0.17em}}\text{\hspace{0.05em}}\text{and}\text{\hspace{0.17em}}\text{\hspace{0.05em}}{x}_{n}\u20ac{{A}^{\prime}}_{n}\\ \text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{then},{y}_{i}={C}_{i0}+{\displaystyle {\sum}_{k=1}^{N}{C}_{ik}\cdot {x}_{k}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\left(i=1,2,\cdots ,M\right)\end{array}$ (9)

here
${{A}^{\prime}}_{n}$ is a fuzzy set, *M* is the rule section number,
${C}_{ik}\left(k=0,\text{1},\cdots ,N\right)$ is the real number of the *i ^{th}* rule. The output PDOP value from the GPS receiver acts as the input of the fuzzy system. If the PDOP value is small (the GPS positioning error is relatively small), then a larger α is used to increase the confidence level. Whereas if the PDOP value is large (the positioning error of GPS is large), then set a small α to reduce the confidence level for the measurement values. Figure 5 illustrates the membership function of the fuzzy system used in this work. The membership function represents the membership of the input PDOP value in the domain of the fuzzy sets and represented as
${s}_{i}\left(0\le {s}_{i}\le 1\right)$. output rules of the Fuzzy Inference System (FIS) to adjust α are as follows, If PDOP is a, then α = f

2.4. Experimental Set Up

For server side this work uses Go language programming (Golang). Golang is a programming language initially developed at Google in year 2007 by Griesemer et al. [23]. Go programming language is a statically-typed language with syntax similar to that of C. It gives many advanced built-in types such as variable length arrays and key-value maps. It also provides rich standard libraries. This work uses MongoDB as a database software. MongoDB is an open-source document database and leading NoSQL database and it is written in C++. The specifications of the hardware used in the experiment are as follows. CPU: VPS 2 core, 8 GB RAM, and 128 GB SSD storage.

For mobile app development, this work uses BuildFire.js. This language allows us to take advantage of the BuildFire SDK and JavaScrip with Expo version 30. The Expo is used for tunneling the JavaScript bundle into native Android. For the GUI development, this work uses 4 units of smartphone with the same brand and type (SAMSUNG A50) to have homogeneous accuracy. The smartphones are attached on different 4 cars as illustrated in Figure 6. This work chooses SAMSUNG A50 with the rational it has average specifications, thus it is expected to represent the average performance of Android based smartphones.

Then the fuzzy inference system is deployed to improve the accuracy of the position and velocity.

3. Results and Analysis

The experiment took place in the area close to Albaha University campus. Four cars are driven with different route and the No_Collision App is run. At the same time, another mobile phone that running simple App developed using MathWorks is used to capture the true value of the position of the car every 5 minutes. Table 1 shows sample of data taken from the first car during the experiment. Then, manually, the errors are calculated.

Table 2 shows the computation results of error percentage of the Kalman Filter (KF) and the adaptive Kalman Filter using FIS (KF-FIS). From Table 2, it is observed that the accuracy of the proposed adaptive Kalman filter provides accuracy improvement of 55.47%, 51.81%, 50.972%, and 56.58% compared to standard Kalman filter. As expected, the error percentage the adaptive KF provides more accurate prediction for the position. This improvement due to the fact that fuzzy system helps the filter converges.

Figure 5. The membership function of the fuzzy system.

4. Conclusions

The use of Fuzzy system as expected helps the Kalman Filter to be an adaptive system and converges to more accurate predictions of the GPS-based position. This improvement increases the usefulness of the No_Collision application in assisting driver during fog in the region that is not fully supported by modern/intelligent transportation system.

Figure 6. The use of No_Collision App. during the experiment.

Table 1. Sample data.

Table 2. Accuracy comparison KF vs. KF + FIS.

The author considers implementing other scenarios: U-turn situation, roundabout situation, and junction situation.

References

[1] Fahad (2019) Infrastructureless Kalman Filter Based Driving Assistance System under Fog Condition. Journal of Basic and Applied Sciences, 3, 1-6.

[2] Cruz, S.B., Abrudan, T.E., Xiao, Z., Trigoni, N. and Barros, J. (2017) Neighbor-Aided Localization in Vehicular Networks. IEEE Transactions on Intelligent Transportation Systems, 18, 2693-2702.

https://doi.org/10.1109/TITS.2017.2655146

[3] Negru, M., Benea, V. and Nedevschi, S. (2014) Fog Assistance on Smart Mobile Devices. Proceedings of IEEE International Conference on Intelligent Computer Communication and Processing (ICCP), Cluj Napoca, 4-6 September 2014.

https://doi.org/10.1109/ICCP.2014.6936995

[4] Negru, M., Nedevschi, S. and Peter, R.I. (2015) Exponential Contrast Restoration in Fog Conditions for Driving Assistance. IEEE Transactions on Intelligent Transportation Systems, 16, 2257-2268.

https://doi.org/10.1109/TITS.2015.2405013

[5] Bertozzi, M., Broggi, A., Cellario, M., Fascioli, A., Lombardi, P. and Porta, M. (2002) Artificial Vision in Road Vehicles. Proceedings of the IEEE, 90, 1258-1271.

https://doi.org/10.1109/JPROC.2002.801444

[6] Acosta, N. and Toloza, J. (2012) Techniques to Improve the GPS Precision. International Journal of Advanced Computer Science and Applications, 3, 125-130.

https://doi.org/10.14569/IJACSA.2012.030820

[7] Ben Ali, O.W., Al-Harthei, H. and Garib, A. (2013) Real-Time Fog Warning System for the Abu Dhabi Emirate (UAE). Journal of Traffic and Logistics Engineering, 1, 213-217.

https://doi.org/10.12720/jtle.1.2.213-217

[8] He, Y., Yu, H. and Fang, H. (2005) Study on Improving GPS Measurement Accuracy. Proceedings of Instrumentation and Measurement Technology Conference, Ottawa, 17-19 May 2005, 1476-1479.

[9] Wang, E., Zhao, W. and Cai, M. (2013) Research on Improving Accuracy of GPS Positioning Based on Particle Filter. Proceedings of 8th IEEE Conference on Industrial Electronics and Applications (ICIEA), Melbourne, 19-21 June 2013.

[10] Jongsintawee, S., Runraengwajiake, S., Supnithi, P. and Panachart, C. (2016) Improvement of GPS Positioning Accuracy When Utilizing Klobuchar Model with Ionospheric Conditions in Thailand. Proceedings of 13rd International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology (ECTI-CON), Chiang Mai, 1-5.

https://doi.org/10.1109/ECTICon.2016.7561391

[11] Tzoreff, E. and Bobrovsky, B.-Z. (2012) A Novel Approach for Modeling Land Vehicle Kinematics to Improve GPS Performance under Urban Environment Conditions. IEEE Transactions on Intelligent Transportation Systems, 13, 344-353.

https://doi.org/10.1109/TITS.2011.2171051

[12] Delaney, K. (2015) GPS Error Rejection Improves Accuracy of Offshore Platform Watch Circle Kalman Filter-Based Technique Prevents False Alarms. Sea Technology, 56, 49-50.

[13] Marry, K. and Bettinger, P. (2019) Smartphone GPS Accuracy Study in an Urban Environment. PLoS ONE, 14, e0219890.

https://doi.org/10.1371/journal.pone.0219890

[14] Kume, H., Taketomi, T., Sato, T. and Yokoya, N. (2010) Extrinsic Camera Parameter Estimation Using Video Images and GPS Considering GPS Positioning Accuracy. Proceedings of 20th International Conference on Pattern Recognition, Istanbul, 23-26 August 2010, 3923-3926.

https://doi.org/10.1109/ICPR.2010.954

[15] Ross, R. and Hoque, R. (2020) Augmenting GPS with Geolocated Fiducials to Improve Accuracy for Mobile Robot Applications. Applied Science, 10, 146.

https://doi.org/10.3390/app10010146

[16] Miroslav, T., Grozev, G. and Alexandrov, C. (2013) One Way to Improve GSP Accuracy Using Local Meteorological Data. Journal of Marine Technology and Environment, 2, 95-100.

[17] Welch, G. and Bishop, G. (2001) An Introduction to the Kalman Filter. University of North Carolina, Chapel Hill.

[18] Grewal, M.S. and Andrews, A.P. (2001) Kalman Filtering-Theory and Practice Using MATLAB. Wiley, Hoboken.

[19] Ma, Z., Liu, Z. and Chen, M. (2006) Application of Adaptive Kalman Filtering Based on Fuzzy Logic to the Integrated GPS/INS Navigation. Information and Control, 35, 457-461.

[20] Zhong, F. and Zhon, Y. (2005) The Application Research of Mamdani and Sugeno Style Fuzzy Inference. Journal of Hubei Polytechnic University, 20, 28-30.

[21] Shi, X. and Hao, Z. (2008) Fuzzy Control and Its Simulation in Matlab. Tsinghua University Press, Beijing.

[22] Liu, M.W. and Xiong, F.F. (2011) A Fuzzy Adaptive GPS/INS Integrated Navigation Algorithm. Procedia Engineering, 15, 660-664.

https://doi.org/10.1016/j.proeng.2011.08.123

[23] Doxsey (2012) An Introduction to Programming in Go. O’Reilly.