## 3 Marker-Assisted Region Scanning
### Update Robot State
For example, a marker created at pose 10 is considered older than one create at pose 50. The robot then selects between the oldest marker and the closest marker. If the distance to the oldest marker is more than \(\mu\) times the distance to the closest marker, the closest marker is chosen as the target (\(\mu\) is a parameter adjusted based on the desired navigation behavior). Otherwise, the oldest marker is selected. When there are no markers with free access, the robot selects a target marker using the tournament method. Algorithm A3 describes this logic in a structured way, starting with the filtering of markers with free access (\(M_{f}\)) and, if no such markers are found, applying the tournament selection method. After filtering the accessible markers, the algorithm then considers the distance (\(d_{o}\)) and the age of the oldest marker (\(\eta_{o}\)), and compares it with the distance to the closest marker (\(\eta_{c}\)). Based on this comparison and the parameter \(\mu\), the algorithm determines the target marker (\(\eta\)) that will guide the robot in its next exploration step. This efficient selection process allows the robot to balance the exploration of new areas with older markers while also considering the need to optimize the path by prioritizing closer markers when appropriate. ### Path Finding

In the situation where the target marker does not have free access, the robot needs to return to the pose where the target marker is created to ensure a clear path to the target. To optimize the path, a method is developed to reduce the set of poses needed to reach the target marker. The approach leverages the known path recorded in the pose list to determine the smallest set of poses that connect the robot's current position to the target marker. The method operates as follows: starting from the robot's current position, poses are traversed at intervals defined by a previously established constant until the target marker's pose is reached. At each step, the closest pose in the pose list index to the target marker's pose that has a free path to the current position is identified. The specifics of this procedure are detailed in Algorithm A5. Initially, the algorithm sets the path \(\Psi\) as an empty list and defines a search step size \(s\). A loop continues until a valid path is found. In each iteration, the algorithm generates a set of candidate poses \(\Omega\) by calculating the indices based on the target marker's pose index \(\delta\) and the current pose index \(k\), considering increments defined by the search step size. If there are no candidate poses available, the loop terminates. For each pose in the candidate set \(\Omega\), the algorithm checks for obstacles between the current pose and the candidate pose. If a clear path is identified (i.e., no obstacles), the algorithm updates the path \(\Psi\) by adding the candidate pose and then updates the current pose index \(k\) to the candidate pose. This process repeats until a direct, obstacle-free route is established between the robot's current position and the target marker. Figure 4 visually illustrates this path optimization process, demonstrating the stages of checking and selecting intermediate poses until the final path is defined. Figure 4: \(Cont\). Figure 3: Process of map updating and marker removal during navigation, where marker represented by red dots. (**a**) The map update with new information obtained by the robot. (**b**) The removal of markers from areas that are no longer unknown, ensuring that only unexplored regions retain markers. ## 4 Simulation Platform

The MARS-SLAM simulation platform models autonomous robot navigation in complex virtual environments. The system employs a robot with a LiDAR sensor to map surroundings, detect obstacles, and explore uncharted regions using marker-based search. Developed in Python, it uses Pygame for visualization and Pandas for data management. The platform simulates a 2D environment where the robot scans and updates an occupancy map in real time.