## 3 Path Tracking Controller  
Figure 3 shows the configuration of the proposed dual-loop control framework for path tracking. A decoupled control method, including a yaw rate controller and a speed controller, is employed to achieve the tracking target of a given path with a desired speed, which is defined as \(p=\left(x_{ref},y_{ref},\theta_{ref},v_{d}\right)\). The yaw rate controller is developed to move the robot following the reference path. Slipping and skidding may lead to degradation of the path tracking performance of a conventional controller. An RBF neural network is thus utilized to propose a self-adaptive tracking control due to its prior adaptability to various systems and performance against disturbances. At the same time, a speed controller is designed to compensate the loss of robot speed due to the occurrence of slipping and skidding. A motor controller is also developed to achieve the reference angular velocity of the left and right driving wheels. Both dynamic and a kinematic controls are realized in the inner and outer loops of the proposed control framework. Slipping and skidding are simulated as unexpected disturbances of the kinematic model, and the adaptive performance of the proposed framework is investigated. According to the configuration of the path tracking control framework from Figure 3, the real path can be output in Algorithm 1. ```
0:\(p=\{x_{ref},y_{ref},\theta_{ref},v_{d}\}\);
0:\(O=\{x,y,\theta,v\}\);
1:while\(t<t_{max}\)
2://outer-loop control algorithm
3:\(e_{p}(t)\leftarrow\text{Error}(x_{ref}(t),y_{ref}(t),x(t),y(t))\);//Compute error
4:\([e_{\theta}(t);e_{v}(t)]\leftarrow\text{Error}([\theta_{ref}(t),\theta(t)];[v_{ d}(t),v(t)])\);
5:\(u_{v}(t)\leftarrow\text{Speedcontroller}(e_{v}(t))\);//PID control algorithm (Equation (15))
6: The yaw rate controller input \(\mathbf{x}(t)=\{e_{\theta}(t),\,e_{p}(t),\,\dot{e}_{\theta}(t),\,\dot{e}_{p}(t)\}\);
7:if\(t=0\) then
8: Initialize matrix \(\mathbf{w}(t)\), \(\mathbf{b}(t)\) and \(\mathbf{c}(t)\);
9:else
10:\(\mathbf{h}(t)\leftarrow\text{Hiddenlayer}(\mathbf{x}(t),\,\mathbf{b}(t),\,\mathbf{c}(t))\);//Compute hidden layer output matrix (Equation (18))
11:\(u_{y}(t)\leftarrow\text{RBFoutput}(\mathbf{w}(t),\,\mathbf{h}(t))\);//Equation (19)
12: Update matrix \(\mathbf{w}(t+1)\), \(\mathbf{b}(t+1)\) and \(\mathbf{c}(t+\) //Equations (21) and (23)
13:endif
14:\([\dot{\varphi}_{Ld}(t),\,\dot{\varphi}_{Rd}(t)]\leftarrow\text{Transition}(u_{v}(t),\,u_{y}(t))\);//The desired angular velocity
15://Inner-loop control algorithm
16:\([e_{t}(t);e_{r}(t)]\leftarrow\text{Error}([\dot{\varphi}_{Ld}(t),\,\dot{ \varphi}_{L}(t)];[\dot{\varphi}_{Rd}(t),\,\dot{\varphi}_{R}(t)])\);
17:\([T_{L}(t);T_{R}(t)]\leftarrow\text{Motorcontroller}([e_{t}(t);\,\,\,\,\,\,\



controller and motor controller, which are shown in Figure 3. The speed controller is designed as

\[u_{v}=K_{pv}\;e_{v}+K_{lv}\;\int e_{v}dt+K_{Dv}\;\frac{de_{v}}{dt} \tag{15}\]

where \(K_{pv}\), \(K_{lv}\), and \(K_{Dv}\) are the proportional, integral, and differential coefficients of the speed controller, respectively, and \(e_{v}\) is the difference between the desired velocity \(v_{d}\) and actual velocity \(v\) of the robot. The PID control algorithm of the motor controller is derived as

\[T^{\prime}_{s}=K_{PT}\;e_{s}+K_{IT}\;\int e_{s}dt+K_{DT}\;\frac{de_{s}}{dt},\; s=L\;or\;R \tag{16}\]

where \(K_{PT}\), \(K_{IT}\), and \(K_{DT}\) are the proportional, integral, and differential coefficients of the motor controller, respectively; \(T^{\prime}_{s}\) is the torque output by the PID control algorithm; \(e_{s}\) is the difference between the desired angular velocity \(\dot{\varphi}_{sd}\) and the actual angular velocity \(\dot{\varphi}_{s}\) of the \(s\)-wheel. \(L\) and \(R\) represent left and right sides of the robot, respectively.