# Mapping Server Collaboration Architecture Design with OpenVSLAM for Mobile Devices
## 2 Related Works
### Visual SLAM  
The representative open-source-based visual SLAM algorithms are Kimera [18], PTAM [19], DSO [20], LSD-SLAM [21], ORB-SLAM2 [12], ORB-SLAM3 [13], SVO [22], and OpenVSLAM [14]. If these SLAM algorithms are classified based on the method, Kimera, PTAM, ORB-SLAM2, ORB-SLAM3, and OpenVSLAM correspond to the feature-point-based indirect SLAM algorithm. DSO and LSD-SLAM are direct SLAM algorithms that do not need to explicitly extract feature points from the image, and the SVO algorithm uses both direct and indirect SLAM methods (Figure 1). In the case of classification based on map density, there are sparse types with low map density, such as DSO, ORB-SLAM2, ORB-SLAM3, SVO, and OpenVSLAM; dense types with dense map density, such as Kimera and PTAM; and semi-dense types, such as LSD-SLAM, whose map densities are mostly higher than the sparse types and whose processing speeds are faster than most dense types. Since the comparison target is visual SLAM, the sensors of all the compared algorithms are cameras and can be divided into mono/stereo/RGBD/IMU depending on the algorithm. PTAM, DSO, and SVO do not have loop closure and optimization functions because they are VO (visual odometry). Finally, most of the point cloud maps are drawn in the form of points, but only Kimera uses a polygon mesh method (Table 1). The adaptive monocular visual-inertial SLAM system is a system similar to the mobile AR system proposed in this paper, and it is a system that can develop real-time AR applications for mobile devices using ORB-SLAM [7]. In that study, a visual inertial odometry (VIO) method that combines a camera and an IMU sensor was designed, and a high-speed visual odometry (VO) module was designed to support the fast tracking of AR applications in a mobile environment. An adaptive execution method for selecting a tracking module was proposed by combining with the existing ORB-SLAM system and by \begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline
**Category** & **Kimera** & **PTAM** & **DSO** & **LSDSLAM** & **ORB-SLAM2** & **ORB-SLAM3** & **SVO** & **OpenVSLAM** \\ \hline
**Method** & Indirect & Indirect & Direct & Direct & Indirect & Indirect & Hybrid & Indirect \\ \hline
**Density** & Dense & Dense & Sparse & Semi-Dense & Sparse & Sparse & Sparse & Sparse \\ \hline
**Sensor** & Mono & & Mono & & Mono & & Mono & Mono & Mono \\  & Stereo & mono & Stereo & mono & Stereo & Stereo & Stereo & Stereo \\  & IMU & & & IMU & & RGBD & RGBD & RGBD \\ \hline
**Backend** & GTSAM & - & - & g2o & g2o & g2o & - & g2o \\ \hline
**Geometry** & Mesh/ & & & & & & & \\  & TSDF & points & points & points & points & points & points \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Open-source-based visual SLAM algorithms. Figure 1: Classification of SLAM algorithms depending on map configuration method. changing the IMU sensor value. In that paper, the system was designed for the purpose of fast tracking with lower optimization, while our paper has the purpose of accurate mapping and localization to implement an AR system in a mobile environment. Therefore, a fast SLAM system adding optimization to the VIO method is needed, and a sophisticated SLAM system that can save and load maps to continue drawing previous maps is also needed. Therefore, in this paper, among the various open-source visual SLAM algorithms, the OpenVSLAM algorithm is used. It is (1) an indirect SLAM system that can be mainly used for robots or autonomous driving, (2) a sparse type with high speed, and (3) has the advantage of being easy to extend through the network by providing a web visualization through SocketIO communication. OpenVSLAM is a visual SLAM system based on the graph-based indirect SLAM algorithm and based on the sparse type with low-density maps, such as ORB-SLAM, ProSLAM [23], and UcoSLAM [24]. As a feature point detector, oriented FAST and rotated BRIEF (ORB), which improved the problem of the non-directional FAST detector, was adopted as a representative image feature.