# Navigation Map Construction Based on Semantic Segmentation and Multi-Submap Integration
## 4 Methods
### Multi-Submap Fusion Mapping Method for Outdoor Environment
#### 4.2.2 The Multi-Submap Management Module  
In the previous section, we introduced the map update strategy for each submap. To represent large-scale environments using multiple submaps, we designed a multi-submap management module. During the initial stage of system operation, the vehicle's central coordinates and orientation are measured using Real-Time Kinematic (RTK). These coordinates serve as the center for the first submap, and a submap is created at the vehicle's current location. Simultaneously, eight additional submaps surrounding this central submap are established, as shown in Figure 4.  
The entire submap object is stored as a binary file through serialization. The submap object contains attributes including the current map state, center coordinates, timestamp, and grid occupancy probabilities. When submap data are required, the object is restored via deserialization. To prevent interruptions in the SLAM system on the main thread, the storage and retrieval operations are executed on a separate thread. Moreover, to enhance lookup efficiency, a hash index is employed for submap storage. Because using floating-point numbers directly as keys can lead to precision errors, discretized integer coordinates of the submap center are used as the hash key. When a large number of submaps is present, it is impractical to keep all of them in memory; thus, the map states are categorized into three types: Current Map, Candidate Map, and Previous Map. The Current Map refers to the submap in which the vehicle is currently located and is retained in memory until the vehicle departs. The Candidate Map indicates the submap into which the vehicle is about to enter and must be preloaded into memory. The Previous Map consists of submaps that the vehicle has left, which are stored on the hard disk and reloaded only when necessary. The state of each submap is dynamic and updates continuously as the vehicle moves. To reflect these changes, the attributes of the map object are modified as needed. Before generating a new submap, the map database is checked to determine whether an existing  
Figure 4: The switching process of the three maps during map updates. submap file already covers the vehicle's current position. If no such submap exists, the system identifies the nearest submap center within the database and creates a new submap at that location. Next, eight surrounding candidate submaps are generated with uniformly spaced centers. If a submap covering the current position is already available in the database, it is loaded along with its eight adjacent submaps. When fewer than eight surrounding submaps are available, empty maps are generated to fill the gaps. The submap corresponding to the vehicle's current position is designated as the \"Current Map\", while the surrounding eight submaps are classified as \"Candidate Maps\". To achieve seamless representation of a large scene using multiple submaps, the algorithm ensures that adjacent submaps overlap during their generation. To model the connectivity between submaps, an adjacency graph is maintained, where each submap functions as a node. If two submaps share an overlapping edge region, an undirected edge is added to the graph. This adjacency graph is stored in a hash table to facilitate efficient querying. In this study, the edge region of a submap is defined as the area where the Euclidean distance from its center exceeds 0.9 of the submap's radius. When the vehicle reaches the edge of the current submap, it checks whether an adjacent submap exists in the neighboring region. If present, a connectivity relationship is established; otherwise, a new submap is initialized, and the connectivity is recorded. Because grid occupancy probabilities in overlapping regions may vary between submaps, this study employs Bayesian updating in log-odds form to integrate these probabilities:  
\[L(O)=\text{log}\frac{P(O)}{1-P(O)} \tag{22}\]  
where \(P(O)\) represents the occupancy probability of a grid, while \(1-P(O)\) denotes the probability that the grid is unoccupied.