# Formation Control of Multiple Autonomous Mobile Robots Using Turkish Natural Language Processing
## 3 Autonomous Mobile Robots
### Autonomous Mobile Robot Control  
Various control methods are used to make autonomous mobile robots (AMRs) reach a specified target or to move in a desired direction. These methods vary according to the type of robot used and the environment. The robot's path planning process (navigation) is challenging and requires many stages. For successful navigation, the robot must complete sensing, localization, cognition, and motion control stages. In the sensing phase, the robot interprets the data received from its sensors and extracts meaningful data. In the localization phase, it estimates its position in the environment used. In the cognition phase, the steps necessary for the robot to reach the target point are planned. In the motion control phase, the robot is moved in the desired trajectory by changing its motor outputs [40; 41; 42]. The geometric approach for the AMR's kinematics and the target point information are shown in Figure 1[46; 47]. A point on the robot's chassis is determined as a reference point to specify the position of the robot. This point is denoted by P. (\(X_{R}\), \(Y_{R}\)) is the robot coordinate system placed on the robot at the point P; (\(x_{t}\), \(y_{i}\)) is the base/universal/reference coordinate system. \(\theta_{r}\) is the angle between the \(x_{r}\)-axis and the \(x_{t}\) coordinate axes due to rotation around the z-axis. The position of the robot in the (\(X_{I}\), \(Y_{I}\)) base coordinate system can be represented as a three-element vector as follows:  
\[\xi_{I}= \begin{bmatrix}x\\ y\\ \theta\end{bmatrix}  \tag{2}\]  
where \(\xi_{I}\) is the position vector, \(x\) is the x component of the position, \(y\) is the y component of the position, and \(\theta\) is the angular position. The speed of the wheel is given in Equation (3) [47]:  
\[\dot{x}_{R}=\frac{r\big{(}\dot{\varphi}_{1}+\dot{\varphi}_{2}\big{)}}{2} \tag{3}\]  
where \(r\) is the radius of the wheel, \(l\) is the distance of each wheel from point P, \(\varphi\) is the rotation of the wheel, and \(r\dot{\varphi}_{i}\)\(i=(1,2)\) is the speed of each wheel. The angular velocity of each wheel with respect to P (\(\dot{\theta}_{i}\)) and the total angular velocity (\(\dot{\theta}\)) are calculated as follows in Equations (4) and (5) [47]. \[\dot{\theta}_{i}=\frac{r\dot{\varphi}_{i}}{2l} \tag{4}\]  
\[\dot{\theta}=\frac{r}{2l}\big{(}\dot{\varphi}_{1}-\dot{\varphi}_{2}\big{)} \tag{5}\]  
The motion of the robot can be described as shown in Equation (6):  
\[\dot{\xi}_{I}= \begin{bmatrix}\dot{x}\\ \dot{y}\\ \dot{\theta}\end{bmatrix} =f(l,r,\dot{\varphi}_{1},\dot{\varphi}_{2}) \tag{6}\]  
Figure 1: Geometric approximation of kinematics: AMR kinematics and target point. The robot's motion is obtained by rotating the robot coordinate system around the z-axis with respect to the base coordinate system. In this case, the rotation matrix around the z-axis is given in Equation (7) [47]. \[R(\theta)= \begin{bmatrix}\cos\theta&\sin\theta&0\\ -\sin\theta&\cos\theta&0\\ 0&0&1\end{bmatrix}  \tag{7}\]  
By utilizing the transformation matrix between the coordinate systems of the robot, the motion of the robot can be written as follows [47] in Equations (8)-(11). \[\xi_{R}=R(\theta)\xi_{I} \tag{8}\]  
\[\xi_{I}=R(\theta)^{-1}\xi_{R} \tag{9}\]  
\[R(\theta)^{-1}=R(\theta)^{T}= \begin{bmatrix}\cos\theta&-\sin\theta&0\\ \sin\theta&\cos\theta&0\\ 0&0&1\end{bmatrix}  \tag{10}\]  
\[\xi_{I}= \begin{bmatrix}\cos\theta&-\sin\theta&0\\ \sin\theta&\cos\theta&0\\ 0&0&1\end{bmatrix} \frac{r}{2} \begin{bmatrix}\varphi_{1}+\varphi_{2}\\ 0\\ \frac{\varphi_{1}+\varphi_{2}}{l}\end{bmatrix} = \begin{bmatrix}\dot{x}\\ \dot{y}\\ \dot{\theta}\end{bmatrix}  \tag{11}\]  
Figure 1 shows the current position of the robot and the position of the target point. The values for the target position are calculated using the units shown in Figure 1 [47]. \(AH\) is the angle between the robot's orientation and the target, and \(PH\) is the distance between the robot and the target. These values can be obtained using Equations (12)-(16).