# Accurate Collaborative Globally-Referenced Digital Mapping with Standard GNSS
## 4 Globally-Referenced Electro-Optical SLAM (GEOSLAM)
### Visual SLAM
However, in a sensor fusion architecture, the states for other sensors (e.g., GNSS) may be spatially correlated beyond the covisibility window. Furthermore, other sensors may experience outages that extend beyond the covisibility window. In such a scenario, it would  
Figure 7: Globally-referenced electro-optical simultaneous localization and mapping (GEOSLAM) block diagram. BA: bundle adjustment. be desirable to optimize over a batch of keyframes that span the availability gap. Accordingly, GEOSLAM extends the concept of covisibility to \(N\) levels as  
\[\text{cov}(i,N)\triangleq\left\{ \begin{aligned} \left\{n\ :\ |\mathcal{M}_{n}\cap\left(\cup_{k\in\text{cov}(i,N-1)}\mathcal{M}_{k} \right)|>T\right\}&\quad N>1,\\ \left\{n\ :\ |\mathcal{M}_{n}\cap\mathcal{M}_{i}|>T\right\}& \quad N=1.\end{aligned} \right.\]  
When processing \(K_{i}\), GEOSLAM's objective is to estimate the map point 3D locations \(\mathbf{x}_{p_{m}}^{\mathcal{S}}\in\mathbb{R}^{3}\) and keyframe poses \(\left(\mathbf{x}_{c_{n}}^{\mathcal{S}},\mathbf{\theta}_{c_{n}}^{\mathcal{S}}\right) \in\left(\mathbb{R}^{3},\mathbb{R}^{3}\right)\) in the \(N\)-level covisibility window for the \(i\)th keyframe, where \(\mathcal{S}\) stands for the local SLAM frame, \(\mathcal{C}_{n}\) is the left camera coordinate frame associated with \(K_{n}\), and \(\mathbf{\theta}_{c_{n}}^{\mathcal{S}}\) is the angle-axis representation of the keyframe orientation. The state vector to be estimated is represented as  
\[\mathbf{X}_{i}\triangleq\Big{[}\Big{\{}\Big{(}\mathbf{x}_{c_{n}}^{\mathcal{S}},\mathbf{ \theta}_{c_{n}}^{\mathcal{S}}\Big{)}\ :\ n\in\text{cov}(i,N)\Big{\}},\Big{\{}\mathbf{x}_{p_{m}}^{ \mathcal{S}}\ :\ m\in\cup_{k\in\text{cov}(i,N)}\mathcal{M}_{k}\Big{\}}\Big{]}^{T}, \tag{4}\]  
where the two sets on the right-hand side are arranged as a concatenation of row vectors so that \(\mathbf{X}_{i}\) becomes a column vector. When triggered by the GNSS front end, the camera setup captures a pair, denoted \(\mathcal{I}_{i}^{lr}\), of concurrent images from the left and right cameras, where the subscript denotes that the current pair is a candidate to be the \(i\)th stereo keyframe \(K_{i}\). The intrinsic and extrinsic parameters of the stereo camera setup are assumed to have been calibrated a priori. The stereo image pair is then undistorted and rectified according to the given calibration, and SIFT features are detected and computed separately for each image [58]. SIFT feature matching is performed between the left and right image with the additional constraint that matching features must have approximately the same vertical coordinate to within a few pixels. The set of stereo feature measurements for \(\mathcal{I}_{i}^{lr}\), \(\mathbf{f}_{i}^{lr}\), and the set of feature descriptors as computed in the left image, \(\mathbf{d}_{i}^{l}\), are passed on to the tracking module. The tracking module has access to the 3D map point positions within \(\mathbf{X}_{i}\) and to the set of SIFT descriptors, \(\mathbf{D}_{i}^{\text{map}}\), corresponding to the map points expected to be seen in the candidate keyframe \(\mathcal{I}_{i}^{lr}\). The tracker performs directed matching of the features between the stereo image and the map. First, a quick feature matching is performed using the Fast Approximate Nearest Neighbor Search Library (FLANN) [59]. With sufficient matches, an initial approximation of the current camera pose is obtained using the five-point algorithm wrapped in random sample consensus (RANSAC) iterations. With this approximate pose, an iteration of exhaustive nearest neighbor search is performed for each map point potentially in view of the camera, but only within a small window of its projected position on the image plane. Subsequently, RANSAC iterations are performed on the full set of feature matches to remove any remaining outliers, and a motion-only BA is performed wherein the current camera pose is optimized based on the feature matches to a fixed set of 3D map points.