# Multi-Robot Exploration Employing Harmonic Map Transformations
## 3 Methodology
### Robot Exploration
#### 3.3.1 Single Robot  
Single robot exploration follows the algorithm depicted in Figure 3. We propose a simple yet effective approach. First, an occupancy grid map is constructed utilizing SLAM. Then, the boundaries are extracted as previously discussed. Subsequently, the HMT for Exploration is computed using the extracted boundaries. As highlighted in [22], the transformation incurs a computational complexity of \(O(M^{3})\), where \(M\) denotes the total number of elements (samples of the boundaries) utilized in the computation. Although the mapping process may slow as the size of the map expands, this issue is mitigated by the fact that the map only needs to be updated when the robot is close to a frontier so that new information is added to the map. Thus, the transformation can be calculated at a low frequency. However, if computational demands persist, a solution proposed in [22] involves employing a map atlas, where numerous local HMTs are interconnected within a graph structure. Following the calculation of the HMT, the presence of frontiers is used as a condition for terminating the exploration process. In the event that frontiers are detected, the single robot selects one to navigate towards. A greedy approach is adopted, wherein the nearest  
Figure 2: The Modified HMT for exploration, transforming the explored region into a punctured disk. On the **left** is an example of a workspace and on the **right** is its corresponding transformation. The explored region is colored blue and the frontiers are colored green. frontier is chosen as the destination. This selection strategy optimizes the exploration process by prioritizing proximity to unexplored regions. After selecting a navigation goal, a controller based on the HMT guides the robot towards the frontier. The robot's position is denoted as \(p=[x,y]^{T}\in\mathbb{R}^{2}\), and the yaw angle is represented as \(\theta\in\mathbb{R}\). The mapping of the robot's position is expressed as \(q=\hat{\mathcal{T}}(p)\in\mathbb{R}^{2}\), with its corresponding Jacobian matrix denoted as \(J(q)\). The following vector  
\[u=-J^{-1}(q)(q-q_{\text{dest}}) \tag{3}\]  
signifies the velocity required for the robot to navigate to the point that maps to \(q_{\text{dest}}\). It should be noted that \(q_{\text{dest}}\) represents the set of points of the nearest frontier and not a single point in the actual workspace. The above equations are sufficient to control a single integrator model. A more common case is that of a differential drive model. Although it is possible to map the single integrator dynamics to the differential drive, as shown in [23], a simpler approach is used in this paper. The low-level controllers of differential drive robots often require that linear \(v\) and angular \(\omega\) velocities be provided to them. The controller chosen is a proportional controller that aims to align the robot with the \(u\) vector. \[v=K_{lin}K_{t}\alpha\|u\| \tag{4}\]  
\[\omega=K_{ang}\Delta\theta \tag{5}\]  
Figure 3: The single robot exploration algorithm. with \(\Delta\theta\in[-\pi,\pi]\) denoting the angular error between \(\theta\) and \(\theta_{d}=arctan(u_{y}/u_{x})\), and with \(K_{lin},K_{ang}\in\mathbb{R}\) being the controller gains. The rotation gain  
\[K_{t}(\Delta\theta)= \begin{cases}1,&\text{ if }\Delta\theta\in[-\phi,\phi]\\ 0,&\text{ otherwise.}\end{cases}  \tag{6}\]  
determines whether the robot should be stationary while turning to avoid larger deviations from the single integrator path and ensure that the robot remains within the workspace. The angle \(\phi\) represents the largest acceptable deviation. The gain \(\alpha\) is a damping factor that reduces linear velocity near frontiers, assisting in avoiding collisions near unexplored regions, such as sharp corner turns. **Remark 1**. : _An issue arises with the inner obstacle's \"shadows\". During the exploration process, an obstacle may be detached from \(\partial\varepsilon\), but the area around it will not be fully explored, thus remaining unknown.