# Leader-Follower Formation Control of Wheeled Mobile Robots without Attitude Measurements
## 5 Stability Analysis  
Once the leader and follower control laws and attitude observers have been presented we can state the following theorem which summarizes the main result of the paper. Consider a group of nonholonomic mobile robots described by (1) in closed loop with the control laws (22) and (24) in combination with the attitude observer (8). Furthermore, assume that \(|\widetilde{\theta}_{i}(0)|<\pi\) and \(\|\dot{\mathbf{x}}_{i}(t)\|\
rightarrow 0\) for all \(t\geq 0\). Then, the leader-follower formation is achieved, i.e.,  
\[\lim_{t\rightarrow\infty}\widetilde{\mathbf{x}}_{i}(t)=\mathbf{0},\quad\lim_{t \rightarrow\infty}\widetilde{\theta}_{i}(t)=0\]  
with \(i=\ell_{i}\mathbf{f}_{j}\). Proof. : First, we develop the closed loop dynamics of the position and attitude tracking errors. By taking into account (16a), (18), (20)-(22), (24) and (25), the position error dynamics is given by  
\[\dot{\mathbf{\beta}}_{i} =-\mathbf{K}_{\beta i}\mathbf{\beta}_{i}-\mathbf{K}_{\gamma i}\mathbf{\eta}_{i} \tag{26}\] \[\dot{\mathbf{\eta}}_{i} =-\mathbf{K}_{\gamma i}\mathbf{\eta}_{i}-\upsilon_{i}(\mathbf{\Theta}_{i}- \mathbf{\Theta}_{\text{di}}). \tag{27}\]  
By using trigonometric identities, the term \(\upsilon_{i}(\mathbf{\Theta}_{i}-\mathbf{\Theta}_{\text{di}})\) can be written as  
\[\upsilon_{i}(\mathbf{\Theta}_{i}-\mathbf{\Theta}_{\text{di}})=\mathbf{\psi}_{i}(t, \widetilde{\theta}_{i})\widetilde{\theta}_{i}=\upsilon_{i}\mathbf{R}_{i}\left[ \begin{array}{c}(1-\cos(\widetilde{\theta}_{i}))/\widetilde{\theta}_{i}\\ -\sin(\widetilde{\theta}_{i})/\widetilde{\theta}_{i}\end{array} \right] \widetilde{\theta}_{i}. \tag{28}\]  
On the other hand, by taking into account the attitude observer (8) and attitude control laws (22b) and (24b), the attitude error dynamics is given by  
\[\dot{\widetilde{\theta}}_{i} =-k_{\alpha i}\sin(\widetilde{\theta}_{i})+k_{\alpha i}\mathbf{\Theta }_{\text{di}}^{\top}\mathbf{S}\mathbf{R}_{i}(\mathbf{I}-\widetilde{\mathbf{R}}_{i}^{\top})\mathbf{ e}_{1} \tag{29}\] \[\dot{\widetilde{\mathbf{R}}}_{i} =(\omega_{i}-\widehat{\omega}_{i})\widetilde{\mathbf{R}}_{i}\mathbf{S} \tag{30}\]  
where the equalities \(\mathbf{\Theta}_{\text{di}}^{\top}\mathbf{S}\mathbf{\Theta}_{i}=\sin(\widetilde{\theta}_{ i})\) and \(\mathbf{\Theta}_{i}-\widehat{\mathbf{\Theta}}_{i}=\mathbf{R}_{i}(\mathbf{I}-\widetilde{\mathbf{R}}_{i }^{\top})\mathbf{e}_{1}\) have been used. values of the control law and the orientation observer employed in the experiments. It is worth to notice, that the initial postures of the robots are selected arbitrarily in every case. The control algorithms together with the attitude observer were tested using two desired trajectories, a circular path and a lemniscate curve. The parametric equations of both desired trajectories are shown below  
\[\mathbf{x}_{\mathrm{dm}_{1}}=\left[ \begin{array}{c}0.3\cos\left(\frac{\pi}{15}t \right)\\ 0.3\sin\left(\frac{\pi}{15}t\right)\end{array} \right][\mathbf{m}],\quad\mathbf{x}_ {\mathrm{dm}_{2}}=\left[ \begin{array}{c}0.35\sin\left(\frac{2\pi}{45}t \right)\\ 0.35\sin\left(\frac{4\pi}{45}t\right)\end{array} \right][\mathbf{m}] \tag{33}\]  
The Cartesian velocity \(\dot{\mathbf{x}}_{i}\) can be computed by means of numerical differentiation. However, we obtained better results with the following velocity observer [27]  
\[\dot{\mathbf{x}}_{i} =\mathbf{\kappa}_{i}(\mathbf{x}_{i}-\widehat{\mathbf{x}}_{i})+\mu_{i}\] \[\dot{\mathbf{\mu}}_{i} =\mathbf{\zeta}_{i}(\mathbf{x}_{i}-\widehat{\mathbf{x}}_{i})\]  
where \(\mathbf{\kappa}_{i},\mathbf{\zeta}_{i}\in\Re^{2\times 2}\) are positive definite matrices and \(\widehat{\mathbf{x}}_{i}\in\Re^{2}\) is an estimate of the Cartesian position \(\mathbf{x}_{i}\). The observer, controller gains and the parameters of the delay dynamic equation are shown in Table 1. Regarding the parameter \(a_{i}\), for the first trajectory was set to \(a_{1}=3\) and for the second one we have \(a_{2}=5\). All other parameters were the same for both trajectories.