{'fraction_non_alphanumeric': 0.03521499060150376, 'fraction_numerical': 0.007577537593984962, 'mean_word_length': 4.725407768622835, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
SLAM-based Integrity Monitoring Using GPS and Fish-eye Camera

Urban navigation using GPS and fish-eye camera suffers from multipath effects in GPS measurements and data association errors in pixel intensities across image frames. We propose a Simultaneous Localization and Mapping (SLAM)-based Integrity Monitoring (IM) algorithm to compute the position protection levels while accounting for multiple faults in both GPS and vision. We perform graph optimization using the sequential data of GPS pseudoranges, pixel intensities, vehicle dynamics, and satellite ephemeris to simultaneously localize the vehicle as well as the landmarks, namely GPS satellites and key image pixels in the world frame. We estimate the fault mode vector by analyzing the temporal correlation across the GPS measurement residuals and spatial correlation across the vision intensity residuals. In particular, to detect and isolate the vision faults, we developed a superpixel-based piecewise Random Sample Consensus (RANSAC) technique to perform spatial voting across image pixels. For an estimated fault mode, we compute the protection levels by applying worst-case failure slope analysis to the linearized Graph-SLAM framework. We perform ground vehicle experiments in the semi-urban area of Champaign, IL and have demonstrated the successful detection and isolation of multiple faults. We also validate tighter protection levels and lower localization errors achieved via the proposed algorithm as compared to SLAM-based IM that utilizes only GPS measurements.


INTRODUCTION
Integrity Monitoring (IM) serves as a important performance metric to assess the navigation solution estimation [1]. Vehicles operating in urban areas face challenges [2] due to static infrastructure, such as buildings and thick foliage, dynamic obstacles, such as traffic and pedestrians, and environmental conditions, such as shadows, sunlight and weather. GPS systems receive fewer measurements in urban environments due to degraded satellite visibility. They also suffer from received signal faults caused by multipath and satellite faults caused by anomalies in the broadcast navigation message.
To address the above-mentioned challenges, one possible solution is to incorporate additional redundancy through the sensor fusion of GPS and vision. Vision sensor performs well in urban areas due to the feature-rich surroundings [3]. Sensor fusion [4] integrates measurements from multiple sensors to improve the accuracy of the vehicle and provide robust performance. Individual sensors, such as GPS and camera, have inherent limitations in operability that are reliably corrected by combining these complementary sensors in a sensor fusion framework. In particular, occlusion and illumination variations in multiple pixel intensities induce data association errors across images, thereby termed as vision faults [5]. Therefore, there is a need for the development of sensor-fusion-based IM techniques that account for multiple faults in both GPS and vision.
Rich literature exists on urban IM approaches for GPS-based navigation systems that utilize external information sources. In [6], the authors developed a sequential map-aided IM technique that checks for outliers in position and Geographic Information System (GIS) using traditional RAIM [7] and weight-based topological map-matching process, respectively. Another paper [8] developed three phases of integrity checks that include assessing the position quality via traditional Receiver Autonomous Integrity Monitoring (RAIM), speed integrity via GPS Doppler and map matching accuracy via fuzzy inference system. However, these approaches have practical limitations because the offline map database is not always available and its accuracy cannot be guaranteed due to the dynamic changes in the urban surroundings. Another line of prior work [9,10] utilizes the odometry information obtained from Dead-Reckoning (DR) sensors, such as inertial measurement units, wheel speed encoder and camera, to perform GPS-based IM. But the drawbacks of these approaches are that they do not address the faults associated with DR sensors, and also, do not account for the simultaneous occurrence of faults across multiple sensor sources.
In this paper, we leverage the generalized and flexible platform developed in our prior work [11], which is Simultaneous Localization and Mapping (SLAM)-based Fault Detection and Isolation (FDI), as the basis for assessing the sensor fusion integrity. Another extension of the SLAM-based FDI platform, described in our prior work [12], assesses the integrity of cooperative localization using a network of receivers. SLAM [13], a well-known technique in robotics, utilizes sensor measurements to estimate the landmarks in a three-dimensional (3D) map while simultaneously localizing the robot within it. Analogous to this, our prior work [11] on SLAM-based FDI combines the sequential data of GPS measurements, receiver motion model and satellite orbital model in a graph framework to simultaneously localize the robot, which is the GPS receiver, landmarks in the map, which are the GPS satellites. A key feature of this platform is that it utilizes graph optimization techniques [14] and therefore, does not require any prior assumption regarding the distribution of states. Given that we localize the landmarks as well, our SLAM-based FDI does not require any prior information regarding the surrounding 3D maps.
We propose SLAM-based IM algorithm using GPS and fish-eye camera to compute the error bounds, termed as protection levels, of the estimated navigation solution by applying worst-case failure slope analysis [15,16] to the Graph-SLAM framework. In this work, we consider global landmarks as the GPS satellites and additional local landmarks as the key image pixels in the world frame. Here, world frame represents the Earth-Centered Earth-Fixed (ECEF) frame. We simultaneously update the state vectors of the vehicle, GPS satellites and key image pixels and thereafter, perform multiple FDI. We constrain the graph via GPS pseudoranges, raw fish-eye images, vehicle dynamics and satellite ephemeris.
For vision measurements, we opt for a fish-eye camera mounted on an vehicle and point it upwards for the following reasons; Firstly, given its wide (≥ 180 • ) Field-Of-View (FOV) the image pixels are spatially spread-out in different directions with respect to the vehicle, thereby, compensating for the restricted spatial geometry of the limited global landmarks, i.e., GPS satellites. Secondly, given that the camera is pointing upwards, the unstructured skyline of the buildings aids in resolving the attitude of the vehicle. Thirdly, the fish-eye image captures the open sky section with respect to the vehicle that is used to distinguish the Line-Of-Sight (LOS) GPS satellites from that of the Non-Line-Of-Sight (NLOS) ones [17]. The rest of the paper is organized as follows: Section II describes our SLAM-based IM algorithm that utilizes GPS and fish-eye camera; Section III experimentally validates the proposed algorithm in performing multiple FDI of GPS and vision faults and assessing the corresponding localization accuracy and size of protection levels; Section IV concludes the paper.

SLAM-BASED IM USING GPS AND FISH-EYE CAMERA
We outline the high-level architecture and later, explain the details of the proposed algorithm. In this work, we focus on the measurement faults that are more frequently observed in urban areas, namely GPS and vision faults. Even though the formulation of the proposed algorithm is capable of addressing other faults, for simplicity, we consider no measurement faults associated with the receiver motion model and satellite orbital model. For reference, details regarding addressing the satellite faults using SLAM-based FDI are described in our prior work [11]. In Fig. 1, we show the architecture of our SLAM-based IM algorithm using GPS and fish-eye camera that is summarized as follows: 1. During initialization, we initialize a 3D map using the PVT of the receiver and satellites computed via an established GPS receiver algorithm [18]. We set the initial value of all GPS measurement fault status to 0.5 indicating neutrality. For the vision module, we perform initial calibration to estimate the scaling from image to global frame. The proposed SLAM-based IM algorithm using GPS and fish-eye camera consists of three main modules, namely measurement pre-processing, extended graph optimization and IM for Graph-SLAM. We describe the details as follows:

Pre-processing the measurements
We consider the following measurements as inputs to our SLAM-based IM algorithm: GPS pseudoranges and C/N 0 values from the GPS receiver, pixel intensities from the fish-eye image, control input obtained from the vehicle motion model and satellite ephemeris decoded from the navigation message.

Vision module:
We pre-process the raw image obtained from fish-eye camera using hybrid sky detection algorithm, to distinguish the skypixels from the non-sky pixels. The pipeline of our hybrid sky detection is seen in Fig. 2(a). Our hybrid sky detection takes into account not only the pixel intensities but also prior knowledge regarding the spatial location of the sky pixels.
We convert the raw image to gray scale and then perform median blur operation. The median blur [23] is a non-linear filter that reduces the noise in the image while keeping the edges relatively sharp. Next, we compute the gradient by combining the magnitude obtained via two Sobel operations [24], one executed in horizontal and the other in vertical direction. An example of the image obtained from fish-eye camera operating in urban areas and pointing upwards is seen in Fig. 2 We observe that the probability of sky is highest close to the center and exponentially decreases outwards [25]. Therefore, the corresponding location-based sky probability, denoted by p loc is given by where u is the 2D image coordinates, such that u = [u, v] T ∈ Π, Π represents the pre-defined domain of the image coordinates. | · | denotes the cardinality of the image domain and || · || denotes the 2-norm residual. c loc ⊂ Π denotes the pre-defined center coordinates in the 2D image frame.
Combining the location probability with Otsu's method of intensity thresholding [26], we compute the hybrid optimal border, seen in Fig. 2(c), that separates the sky region, represented by subscript sky, from that of the infrastructure, denoted by subscript inf . We minimize the variance of sky and infrastructure to estimate the Otsu's intensity threshold I otsu as where -I denotes the intensity vector that stacks all the pixel intensities in the fish-eye image, such that I = {I(u) u ∈ Π}, where I(u) : Π → R denotes the intensity of any 2D pixel coordinates u; ω sky (k) and ω inf (k) denotes the weights associated with the sky and building infrastructure, respectively, such that σ 2 sky (k) and σ 2 inf (k) denotes the variance of the pixel intensities associated with the sky and building infrastructure. Utilizing Eqs. (1) and (2), we compute the hybrid sky probability, denoted by p sky at any 2D image coordinate u, u ∈ Π as where I max and I min are the maximum and minimum intensity values in the fish-eye image, such that I max = max u∈Π I(u) and I min = min u∈Π I(u), respectively. Considering η as the pre-defined sky threshold, if p sky (u) > η, then it is categorized as sky pixel and non-sky pixel otherwise. The sky-enclosed area in the fish-eye image is seen in Fig. 2(d).
Next, using the non-sky detected pixels, we describe the vision measurement model in Eq. (4) that is formulated via omnidirectional camera model [27] and direct image alignment [28]. Direct image alignment computes the depth maps in an incremental fashion and compares the pixel intensities across the image frames directly, such that the spatial context of the image is preserved. This vision measurement model is utilized later in our extended graph optimization module to formulate the corresponding vision odometry-based component of the cost function.
such that η vis (u) is pixel noise and from [27], where the subscript kf refers to keyframe, -I kf (u) : Π kf → R denotes the intensity of any 2D pixel coordinates u in the keyframe and Π kf ⊂ R 2 denotes the image domain of keyframe; Detailed explanation regarding keyframe selection and estimation of semi-dense depth maps is given in prior literature [27]; -I t (u) : Π ns → R denotes the intensity of any 2D pixel coordinates u in the current frame and Π ns ⊆ Π denotes the image domain consisting of non-sky pixels; π : R 3 → Π ns denotes the map from 3D world coordinates, denoted by p = [p x , p y , p z ] to 2D pixel in image frame; w(∆µ, u) denotes the 3D warp function that unprojects the pixel coordinates u and transforms it by a relative state vector ∆µ. The relative state vector ∆µ indicates the difference between the current vehicle pose, denoted by µ t = [x, ψ] t with respect to that of the keyframe, denoted by µ kf ; Here, x denotes the 3D vehicle position and ψ denotes the 3D orientation; R ∈ SO(3) and t ∈ R 3 denotes the rotation matrix and translation vector of µ, respectively; π −1 : Π ns × R + → R 3 denotes the inverse mapping of 2D pixel coordinates to 3D world coordinates via an inverse distance represented by d.
We calibrate the camera parameters, namely f x , f y , c x , c y and ξ during initialization; d kf (u) denotes the inverse distance of the pixel coordinates in the keyframe.

GPS module:
In the GPS module, considering N visible satellites, we describe the GPS measurement model as where x and y k denotes the 3D position of the vehicle and k th satellite, respectively; cδt and cδt k represents the receiver clock bias and k th satellite clock bias corrections, respectively; η k represents the measurement noise related to k th satellite. We also formulate the measurement covariance of k th satellite via the measured C/N 0 values and the sky area detected via Eq. (3) in the vision pre-processing module. Note that the classification of the satellite as either LOS or NLOS depends on the unknown state vector of the vehicle and k th satellite. Therefore, the measurement covariance of k th satellite is given by where x t denotes the vehicle state vector at t th time instant comprising of 3D position, 3D velocity, clock bias, clock drift and 3D attitude, respectively, such that x t = [x, cδt,ẋ, cδt, ψ] t ; y i t denotes the state vector of i th satellite comprising of its 3D position, 3D velocity, clock bias and clock drift corrections, such that y k t = [y k , cδt i ,ẏ k , cδṫ k ] t , i ∈ {1, · · · , N }; b k and a k are the vision coefficients, such that b k = b LOS p sky π(y k ) and a k = a LOS p sky π(y k ) when p sky π(y k ) > η and and a k = a N LOS p sky π(y k ) otherwise; η is the pre-defined threshold explained in Eq.
a LOS and a N LOS are constant pre-determined coefficients and π(y k ) denotes the projection of the state vector of k th satellite in the image frame.

Extended graph optimization
In our extended graph optimization module, our cost function consists of four error terms, namely GPS pseudoranges, non-sky pixel intensities, receiver motion model and satellite orbital model, as follows: where θ t denotes the overall state vector comprising of the state vector of the vehicle, GPS satellites and key image pixels in the world frame, given by θ t = {x t , y 1 t , · · · , y N t , p j t ∀j ∈ |Π| ns } and is estimated during the graph optimization; -Λ denotes the M-estimator used to transform the corresponding weighted residuals; Details regarding the choice of Mestimator used are explained in our prior work [11]; -r k t−1 denotes the fault status associated with the GPS pseudorange of k th satellite and estimated at the past time instant; Similarly, s t (u) denotes the estimated vision fault status of any 2D pixel u ∈ Π kf at the previous time instant; h denotes the GPS measurement model; g denotes the motion model of the receiver and f denotes the satellite orbital model;x t−1 andȳ k t−1 denotes the estimated state vector of the vehicle and k th satellite, respectively, at the previous time instant; u R,t and u k t denote the motion control inputs of the vehicle and k th satellite, respectively; -Σ t andΩ k t denotes the predicted covariance matrix of the vehicle state vector and k th satellite state vector at the t th time instant; Explanation regarding estimating these covariances is given in our prior work [11]; -σ k t denote the measurement covariance of the k th satellite and is estimated from Eq. (6); Similarly, ω t (u) denotes the covariance associated with the intensity of the non-sky pixel u and is estimated based on Section 2.3 of [28].
The first three terms in the cost function e t , given in Eq. (7), correspond to the residuals associated with the GPS pseudoranges, satellite ephemeris and vehicle state vector, whose details are provided in our prior work [11]. The last term represents the summation of intensity residuals across non-sky pixels based on the vision measurement model explained in Eq. (4). In particular, we perform sub-graph optimization at each instant, as seen in Eq. (8), where the cost function is formulated using the past history of measurements.θ t−T :t = argmin where T denotes the number of time instants utilized in the sub-graph optimization thread andθ t−T :t denotes our SLAM-based IM estimate of the overall state vector computed during the sub-graph optimization. We estimate the key image pixels in the world frame, represented by p j t , via inverse-mapping defined in Eq. (4). Details regarding mapping that involves periodically executing full-graph optimization is given in our prior work [11].

IM for Graph-SLAM framework
We compute the protection levels associated with the estimated vehicle position using worst-case failure mode slope analysis [15,16]. This is justified because worst-case failure mode slope is derived for weighted least squares estimator and graph optimization via M-estimator-based Levenberg Marquardt algorithm is also a non-linear weighted least squares problem. However, there are certain design challenges involved in applying worst-case failure slope analysis for the protection level computation of Graph-SLAM framework. Firstly, given that the worst-case failure slope is derived for linear measurement model but the cost function associated with Graph-SLAM is non-linear, we linearize the formulation of graph optimization at the estimated overall state vector. Secondly, Graph-SLAM is a sequential methodology, whereas the worst-case failure slope falls under snapshot technique for integrity monitoring. Therefore, we linearize our graph formulation over not only the current time instant, but over the past time history of measurements so as to incorporate the temporal aspect in protection level computation. Thirdly, the graph optimization for SLAM framework consists of a large number of states and measurements. However, evaluating all possible fault modes associated with the measurements is computationally cumbersome. Therefore, we directly compute a single fault mode based on the measurement fault status estimated via multiple FDI module.

1) Multiple FDI module:
Based on the estimated overall state vector from the extended graph optimization explained in Section 2.2, we independently compute the measurement residuals associated with GPS pseudoranges and non-sky pixel intensities. In our multiple FDI module, we evaluate the GPS residuals by analyzing the temporal correlation of their non-faulty error distribution and vision residuals using spatial correlation across image pixels.
GPS faults: To detect and isolate GPS faults in pseudoranges, we evaluate each residual against an empirical Gaussian distribution, which represents the measurement error distribution during non-faulty conditions. This is justified because we observe that the GPS measurements follow a Gaussian distribution during non-faulty conditions, as explained in our prior work [11]. We replicate the non-faulty conditions of GPS measurements by executing the initialization procedure in open-sky conditions. Thereafter, deviation of the measurement residual, denoted by ∆ρ k , from the Cumulative Distribution Function (CDF) of its empirical Gaussian distribution, denoted by Φ k ∆ρ , is categorized as a fault and the corresponding fault statusr k t is computed in Eq. (9). The justification regarding the formulation of fault status is explained in our prior work [12].
Vision faults: Unlike GPS faults, vision faults caused by data association errors exhibit high spatial correlation across image pixels and low temporal correlation. This is justified because the vision faults are localized to a group of neighboring pixels and are not isolated to a standalone pixel. We developed a superpixel-based piecewise RANSAC technique that performs spatial voting across the image pixels to detect and isolate vision faults. RANSAC [22], a popular outlier detection method in image processing, estimates the optimal fitting parameters of a model via random sampling of data containing both inliers and outliers. The steps involved in the superpixel-based piecewise RANSAC technique are described as follows: first, we segment the image into clusters, known as superpixels, based on the color similarity and space proximity between image pixels using superpixel segmentation [21]. We denote the number of superpixels depicting non-sky pixels to be Γ, where the total number of superpixels into which the image is segmented is pre-defined during initialization. For each non-sky superpixel, we denote the pixel intensity vector as I j ∀j ∈ {1, · · · , Γ}, which stacks the intensities of pixels within the superpixel. We represent the received intensity, i.e., keyframe pixel intensities Vs expected intensity, i.e., transformed current pixel intensities as a two-Dimensional (2D) plot. Next, we estimate the fitted line using RANSAC that passes through the optimal set of inliers and thereafter, compute the fraction of outliers in the superpixel, which is represented by ν j j . Then, utilizing the estimated model parameters of the fitted line, we evaluate the corresponding fraction of outliers at all the other non-sky superpixels, denoted by ν j k ∀k ∈ {1, · · · , Γ} − j. Finally, the fault status at each superpixel is computed as the product of all the estimated outlier fractions, as seen in Eq. (10), and the same fault status is assigned to all the pixels within that superpixel. This procedure is repeated for all the non-sky superpixels to compute the fault status of all the non-sky pixels in the keyframe. Our algorithm considers an underlying assumption that there are sufficient number of superpixels to reach a common consensus. If the number of superpixels associated with non-sky pixels is less, such as in open-sky setting, a pre-defined penalty is assigned to the vision fault status.s 2) Protection level computation In Eq. (11), based on the design solutions explained in Section 2.3.1, we linearize the overall measurement model of the graph optimization framework using first-order approximation. For simplicity, we derive the protection levels using measurements of the current time instant, but the same formulation is applicable for extension to the past history of measurements.
where -∆z denotes the overall measurement vector that concatenates GPS pseudoranges, control input of vehicle, satellite ephemeris and keyframe pixel intensities against an estimated overall state vectorθ t ; η denotes the overall measurement noise; -C denotes the linearized overall measurement model that vertically stacks the Jacobian associated with GPS pseudoranges, denoted by H, vehicle motion model and satellite orbital model, denoted by A and non-sky pixel intensities, denoted by J, such that C = [H, A, J] T ; f denotes the overall fault vector associated with the overall measurement vector and thereby, stacks measurement faults obtained from individual sensor sources.
As described in Eq. (7) of the graph optimization module, we express the M-estimator-based Levenberg Marquardt formulation, which is a weighted non-linear least squares problem, as Next, we define the overall test statistic, denoted by ζ, as the summation of the weighted squared residuals across all the measurements. We consider an assumption that the overall test statistic is chi-square distributed, denoted by χ 2 k under non-faulty conditions and non-central chi-squared, denoted by χ 2 k,λ , under the presence of GPS faults or vision faults or both.
such that where k denotes the number of redundant measurements, i.e., difference between the number of overall measurements, denoted by n and overall states, denoted by l, such that k = n − l. λ indicates the non-centrality parameter associated with the overall test statistic during faulty conditions. According to the worst-case failure mode slope analysis [15], as seen in Fig. 4, the protection level is calculated as the projection in the position domain of the measurement faults that would generate a non-centrality parameter λ = λ th in the overall test statistic ζ with the maximum slope. In particular, the non-centrality parameter λ th is estimated from the false-alarm, denoted by p F A and mis-detection rates, denoted by p M D , which are set according to the pre-defined integrity requirements. Figure 4: Protection levels computed as the intersection of worst-case failure mode slope and non-centrality parameter [15].
In Eq. (15), we formulate the measurement fault mode, denoted by b t , using GPS and vision fault status estimated in Eqs. (9) and (10). For this, we consider a pre-defined fault threshold, denoted by κ, such that if the fault status is above κ, the measurement is flagged as faulty in the computation of protection levels. Given that we consider measurement faults in only GPS and vision, the fault entries of receiver and satellite motion models are set to zero for this work. However, the corresponding fault vector, which comprises of the exact measurement fault magnitudes, is still unknown. According to [15], for a given fault mode, the worst case fault direction that maximizes the integrity risk, is the one that maximizes the failure mode slope, which is seen in Fig. 4 and denoted by g b . In this context, we define the square of failure mode slope, denoted by g 2 b , as the ratio of squared state estimation error in position of the vehicle over the overall test statistic. Using the linearized equations seen in Eqs. (11), (12) and (13), we derive the failure slope for the graph optimization framework in terms of unknown fault vector. For this, we consider CKC ≈ I, which is valid approximation after the iterative convergence of the graph optimization at any time instant since β << 0.
Considering n b to be the number of non-zero entries in the fault mode b estimated via multiple FDI module, we define fault matrix, denoted by B b , as B b = [I n b , 0 n−n b ] T and next, re-arrange the rows of the m and M ζ matrices to match the rows of the fault matrix. Thereafter, we define a transformed fault vector, denoted by f ζ , such that f = B b M ζ f ζ . Based on the above-mentioned steps, we describe the failure slope formulation of Graph-SLAM framework in Eq. (16).
where α extracts the vehicle 3D position from the overall state vector θ, such that and m represents the state gain matrix, such that Referring to [16], for a given fault mode but unknown fault vector, the worst-case failure slope equals the maximum eigenvalue of the corresponding failure slope formulation. Therefore, we express the worst-case failure slope of the Graph-SLAM framework asḡ Next, we compute protection levelχ t , seen in Eq. (18) as the y-coordinate that corresponds to the integrity metric λ th along the line passing through the origin and with slope given byḡ 2 b .

EXPERIMENT RESULTS
We validate the performance of the proposed SLAM-based IM algorithm that utilizes both GPS and fish-eye camera. We conduct real-world experiments on a moving ground vehicle in the semi-urban area of Champaign, IL along the route shown in Fig. 5. Our experimental setup comprises of a commercial off-the-shelf GPS receiver and a fish-eye camera fitted with 180 • FOV lens. During t = 0 − 70 s, the ground vehicle operates in open-sky conditions, thereby experiencing no GPS faults but less visual features. In Fig. 5, the blue highlighted region suffers from vision challenges, namely illumination variations due to sunlight and shadows, that causes data association errors across images. Similarly, the red highlighted region is enclosed with tall buildings that leads to multipath effects in the GPS measurements. For instance, at t = 78 s we showcase the true overlap of the GPS satellite positions over the fish-eye image, where 3 out of the 7 visible satellites are affected by multipath. Fig. 6 shows the average fault status of GPS pseudoranges and vision superpixels, as indicated in red and blue, respectively. Given that the ground vehicle navigates in open-sky conditions for t < 70 s, the average GPS fault status estimated via our multiple FDI module is low, whereas the average vision fault status is high due to the feature-less surroundings. As the vehicle passes through the red highlighted region shown in Fig. 5 that represents the semi-urban area, the average fault status of vision is low but that of GPS increases due to multipath.
We further analyze the performance of our multiple FDI module in the challenging semi-urban area, i.e., for t > 70 s during which the ground vehicle experiences GPS faults due to multipath and vision faults due to illumination variations. Fig. 7(a) plots that the individual GPS fault status of 3 out of the 7 visible satellites with PRNs 6, 12, and 2. In accordance with the skyplot shown in Fig. 5, our proposed SLAM-based IM algorithm successfully flags the satellites with PRN 6 and 12 as faulty while accurately estimating the high-elevation satellite with PRN 2 as non-faulty. During the same duration, we also analyze the vision fault status associated with the superpixels. In Fig. 7(b), at each time instant, we plot the top four fault status of the superpixels, such that each marker represents a superpixel. We observe that in urban region, the value of the associated vision fault status decreases due to feature-rich tall buildings in urban areas. However, when the vehicle enters the blue highlighted region seen in Fig. 7(b), the illumination variations induced by the bright sunlight causes the fault status associated with certain superpixels to shown an increasing trend. Figure 6: Performance of our multiple FDI module via average fault status of GPS pseudoranges, indicated in red and vision superpixels, indicated in blue. When the ground vehicle navigates through the semi-urban region, i.e., for t > 70 s, the average fault status associated with GPS is high due to multipath, whereas vision is low due to rich features.
We demonstrate the improved performance of the SLAM-based IM algorithm that utilizes GPS and fish-eye camera seen in Fig. 8(a), as compared to the SLAM-based IM algorithm that utilizes GPS-only seen in Fig. 8(b). By utilizing GPS and fisheye camera, we demonstrate higher localization accuracy, with an Root Mean Squared Error (RMSE) of 8.8 m and standard deviation of 1.73 m, as compared to employing GPS-only that shows an RMSE of 16.2 m and standard deviation of 2.86 m. We also validate that the lower mean size of protection levels are estimated using GPS and fish-eye camera, i.e. 6.5 m than using GPS-only, i.e., 10.5 m thereby, achieving tighter protection levels.

CONCLUSIONS
We proposed a Simultaneous Localization and Mapping (SLAM)-based Integrity Monitoring (IM) algorithm using GPS and fish-eye camera that estimates the protection levels of the Graph-SLAM framework while accounting for multiple faults in GPS and vision. We developed hybrid sky detection algorithm to distinguish the non-sky and sky pixels, which are later used in graph optimization and GPS measurement covariance, respectively. By utilizing the GPS pseudoranges, non-sky pixel intensities, receiver and satellite motion model, we performed graph optimization via M-estimator-based Levenberg Marquardt  Figure 7: Estimated fault status of (a) GPS measurements and (b) vision superpixels during t = 70 − 100 s, i.e., when the ground vehicle navigates through the semi-urban area. In (a), our multiple FDI module successfully detects satellites with PRN 6, 12 as faulty while accurately estimating the PRN 2 as non-faulty. In (b), where each marker indicates a superpixel, the trend of fault status associated with superpixels is low given the rich features but later, increases due to illumination changes. algorithm. We simultaneously estimated the state vector of the vehicle, GPS satellites and key image pixels in the world frame. We estimated the fault mode vector by independently evaluating the measurement residuals against an empirical Gaussian distribution for GPS faults and using our developed superpixel-based piecewise RANSAC for vision faults. We computed the protection levels via the worst-case failure slope analysis that estimates the maximum eigenvalue associated with the failure slope formulation of the linearized Graph-SLAM framework. We conducted real-world experiments using a ground vehicle in a semi-urban region to analyze the performance our proposed SLAM-based IM algorithm that utilizes GPS and fish-eye camera. We successfully detected and isolated multiple measurement faults in GPS and vision. We demonstrated higher localization accuracy using our proposed algorithm with an RMSE of 8.8 m and standard deviation of 1.73 m, as compared to GPS-only that shows an RMSE of 16.2 m and standard deviation of 2.86 m. We also validated that the mean size of protection levels estimated using GPS and fish-eye camera, i.e. 6.5 m is lower than using GPS-only, i.e., 10.5 m.