# Enhanced Ant Colony Algorithm Based on Islands for Mobile Robot Path Planning
## 2 Modeling of the Environment and Mobile Robots  
Due to its simplicity and efficiency, the grid-based approach is commonly employed for environment modeling [38]. Consequently, the environment is constructed by the grid method in this paper. In this representation, unoccupied grids are represented by 0 and displayed in white, whereas obstacle grids are marked by 1 and shown in black. To precisely identify the location of each grid cell, a Cartesian coordinate system, along with serial number notation, is utilized [39]. For example, Figure 1 presents an example of an environment modeled using the grid method. The modeled environment has \(10\times 10\) grids, where the robot \"R\" has eight optional grids available for movement during path planning.  
In a Cartesian coordinate system, the center of each grid is uniquely determined by its absolute coordinates (\(x\), \(y\)). Utilizing the serial numbering method, grid cells are sequentially assigned unique numbers from left to right and top to bottom starting from 1, ensuring that each cell is distinctly identified. The complete set of serial numbers assigned to all grids within the environment is expressed by the following (1):  
\[G=[1,2,3\ldots g]\quad g=m\times n. \tag{1}\]  
\[g=\Big{(}\frac{x}{a}+0.5\Big{)}+n\times\Big{[}m-\Big{(}\frac{y}{a}+0.5\Big{)} \Big{]}. \tag{2}\]  
\[x=\begin{cases}[mod(g,n)-0.5]\times a,&ifmod(g,n)\
eq 0,\\ (n-0.5)\times a,&otherwise.\end{cases} \tag{3}\]\[y=\left[m-ceil\left(\frac{S}{n}\right)+0.5\right]\times a. \tag{4}\]  
In Equations (1)-(4), \(g\) indicates the grid number; \(n\) and \(m\) denote the total number of rows and columns in the environment, respectively; and \(\delta_{x}\) and \(\delta_{y}\) refer to the mobile robot's length and width, respectively. To ensure that the robot can perform in-place rotations and other maneuvers smoothly within free grid cells, the parameter \(a\) is set to the larger of \(\delta_{x}\) and \(\delta_{y}\). The \(mod()\) function calculates the remainder of a division operation, whereas the \(ceil()\) function rounds a given value up to the nearest integer.  
A differentially driven mobile robot (DDMR) is commonly utilized for validating path planning verification [40]. Figure 2 depicts the motion analysis of a DDMR during a turning maneuver, where linear velocities of the two driving wheels are expressed as follows:  
\[\left\{\begin{array}{l}v_{L}=(R+B/2)\omega,\\ v_{R}=(R-B/2)\omega,\end{array}\right. \tag{5}\]  
where \(v_{R}\) and \(v_{L}\) represent the inner and outer linear velocities of the DDMR, respectively; \(G(x,y)\) signifies the location of the DDMR in the Cartesian coordinate framework; \(v\) denotes the linear velocity of the centroid; \(\omega\) indicates the angular velocity of the DDMR as it turns around point \(O^{{}^{\prime}}\); the turning radius is \(R\); and \(B\) signifies the width of the robot. As presented in Equation (5), the linear velocity of the centroid is formulated as follows:  
\[v=\omega R=(v_{R}+v_{L})/2. \tag{6}\]  
It can be derived from Equations (5) and (6) that \(R\) and \(\omega\) yield the following:  
\[\left\{\begin{array}{c}\omega=B/(v_{L}-v_{R}),\\ R=[B(v_{R}+v_{L})]/[2(v_{L}-v_{R})].\end{array}\right. \tag{7}\]  
According to Equation (7), when \(v_{L}=-v_{R}\) and \(R=0\), the DDMR achieves in-place rotation. During the turning process, if \(\omega\) remains constant, the larger turning angle \(\theta\), the more time it takes. This observation ensures that the DDMR can smoothly execute both turning and linear motion, providing the necessary conditions for verifying the paths calculated by the algorithm.  
Figure 1: Grid map of an environment with the robot’s optional grids. R: Robot.