Keywords

1 Introduction

The mobile robot is an innovative solution for the future of digitization and industry 4.0. The self-propelled robot ensures the certainty and flexibility of the product. At the same time, it makes it easier to move goods inside factories and warehouses. Besides, robots also improve automation and solve production continuity problems [1, 2]. In the world, in recent decades, autonomous robot control has received extensive research and development attention, and many methods, from classical control to modern management, have been proposed to apply to self-propelled robots. Previously, most publications used the structure of two control loops as the outer kinematic loop uses the Lyapunov function to synthesize the position-tracking controller, and the dynamic inner circle controls the speed tracking. Many active loop control methods have been proposed, such as slip control [3,4,5,6] and backstepping control [7,8,9]. When the dynamic equation has uncertain parameters, adaptive management is included in the design [10,11,12,13]. The adaptive control combines with neurons to approximate the result. Unpredictable parts [14,15,16] and adaptive control combined with fuzzy logic [17,18,19,20] gave reasonable control quality, compensating for model error and system input noise.

Although many advanced controllers have been researched and developed, traditional PID controllers are still chosen to be used in the problem of controlling orbital self-propelled robots because of their effectiveness of the controller. This ensures stability and traction. However, the accuracy achieved is not high. In the process of developing control techniques, Intelligent control, fuzzy logic is applied to work in many fields with the role of an observer. The fuzzy inference mechanism is considered a Simple and effective method for fine tuning classic controllers (Leonid Reznik, 1997; Jan Jantzen, 1998). Therefore, the sustainable controller FLC, when used to control the self-propelled robot, although it can.

This paper is organized into five main parts. Part 1 and part 2 present the introduction to the target study and kinematics and dynamics model. The fuzzy logic controller is designed in Sect. 3. Part 4 shows the simulation and simulation results. The last section is the conclusion.

2 Kinematic and Dynamic Model

2.1 Kinematic Model

The equation describing the kinematics of the mobile robot is expressed in Eq. (1) [1].

$$ \dot{q} = \left[ {\begin{array}{*{20}c} {\frac{r}{2}\cos (\theta )} & {\frac{r}{2}dcos(\theta )} \\ {\frac{r}{2}\sin (\theta )} & {\frac{r}{2}d\sin (\theta )} \\ \frac{r}{2a} & \frac{r}{2a} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\dot{\varphi }_{r} } \\ {\dot{\varphi }_{l} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\dot{x}} \\ {\dot{y}} \\ {\dot{\theta }} \\ \end{array} } \right] $$
(1)

where: r is right and left wheel radius; 2a is distance between the actuated wheels and the symmetry axis; \(\dot{\varphi }_{r} ,\dot{\varphi }_{l}\) are angular velocity of the right and left wheels; \(v,\omega\) are Angular velocity of the right and left wheels; \(q\) is linear and angular velocities of robot; \(\theta\) is orientation angle; \(\dot{q}\) is robot speed.

2.2 Dynamic Model

The kinetic energy of the self-propelled robot is calculated by:

$$ T_{c} = \frac{1}{2}m_{c} \vartheta_{c}^{2} + \frac{1}{2}I_{c} \dot{\theta }^{2} $$
(2)
$$ T_{\omega R} = \frac{1}{2}m_{\omega } \vartheta_{\omega }^{2} + \frac{1}{2}I_{m} \dot{\theta }^{2} + \frac{1}{2}I_{\omega } \dot{\varphi }_{r}^{2} $$
(3)
$$ T_{\omega L} = \frac{1}{2}m_{\omega } \vartheta_{\omega }^{2} + \frac{1}{2}I_{m} \dot{\theta }^{2} + \frac{1}{2}I_{\omega } \dot{\varphi }_{l}^{2} $$
(4)

where: where Tc is the kinetic energy of the DWMR without the wheels, \(T_{\omega R}\) is the kinetic energy of the actuated wheels in the plane and \(T_{\omega L}\) is the kinetic energy of all the wheels considering the orthogonal plane; \(m_{c}\) is mass of the robot without wheels and motors; \(m_{\omega }\) is mass of each wheel and motor assembly; \(m_{t}\) is total mass of the DWMR; \(m_{t}\) is moment of inertia of the DWMR without wheels and motors about the vertical axis through P; \(I_{c}\) is moment of inertia of the DWMR without wheels and motors about the vertical axis through P; \(I_{{\text{w}}}\) is Moment of inertia of each wheel and motor about the wheel axis; I is Total inertia moment of the robot; \(\dot{\varphi }_{r} ,\dot{\varphi }_{l}\) are angular velocity of the right and left wheels; \(v,\omega\) are Angular velocity of the right and left wheels; \(\theta\) is orientation angle.

Mobile robot speed is calculated by:

$$ \vartheta_{i}^{2} = \dot{x}_{i}^{2} + \dot{y}_{i}^{2} $$
(5)

The coordinates of the wheels are therefore determined as follows:

$$ \left\{ {\begin{array}{*{20}c} {x_{{\omega {\text{r}}}} = x + a\sin \theta } \\ {y_{{\omega {\text{r}}}} = y + a\cos \theta } \\ \end{array} } \right. $$
(6)
$$ \left\{ {\begin{array}{*{20}c} {x_{\omega l} = x - a\sin \theta } \\ {y_{\omega l} = y + a\cos \theta } \\ \end{array} } \right. $$
(7)

From Eq. (2) to Eq. (7), the total kinetic energy:

$$ T = \frac{1}{2}m_{t} \left( {\left( {\dot{x}^{2} + \dot{y}^{2} } \right) - \dot{y}d\dot{\theta }\cos \left( \theta \right) + m_{t} \dot{x}d\dot{\theta }\sin \left( \theta \right)} \right) + \frac{1}{2}I\dot{\theta }^{2} + \frac{1}{2}I_{w} \left( {\dot{\varphi }_{r}^{2} + \dot{\varphi }_{I}^{2} } \right) $$
(8)

where: \(m_{t} = m_{c} + 2m_{\omega } ;I = m_{c} d^{2} + I_{c} + 2m_{\omega } \left( {d^{2} + a^{2} } \right) + 2I_{m}\) and \(\dot{\theta } = \omega\)

The robot's equation of motion is described by the system of equations:

$$ \left\{ {\begin{array}{*{20}c} {m\ddot{x} - m_{c} d\ddot{\theta }\sin \theta - md\dot{\theta }^{2} \cos \theta = F_{1} - C_{1} } \\ {m\ddot{y} - m_{c} d\ddot{\theta }\cos \theta - m_{c} d\dot{\theta }^{2} \sin \theta = F_{2} - C_{2} } \\ { - m_{c} d\sin \theta \ddot{x} + m_{c} d\cos \theta \ddot{y} + I\ddot{\theta } = F_{3} - C_{3} } \\ {I_{\omega } \ddot{\varphi }_{r} = \tau_{r} - C_{4} } \\ {I_{\omega } \ddot{\varphi }_{l} = \tau_{l} - C_{5} } \\ \end{array} } \right. $$
(9)

The matrix linking the kinematic constraints:

$$ \Lambda^{T} (q) = \left[ {\begin{array}{*{20}c} {C_{1} } \\ {C_{2} } \\ {C_{3} } \\ {C_{4} } \\ {C_{5} } \\ \end{array} } \right] $$
(10)

From Eqs. (9)- (10) The motion of the robot can be represented by the equation:

$$ M(q)\ddot{q} + V\left( {q,\dot{q}} \right) + F(\dot{q}) + G(q) + \tau_{d} = B(q)\tau - \Lambda^{T} (q)^{\lambda } $$
(11)

where: \(M(q)\) is positive inertia matrix; \(V\left( {q,\dot{q}} \right)\) is centripetal Matrix; \(F(\dot{q})\) is surface friction; \(G(q)\) is gravity acceleration matrix; \(\tau_{d}\) is noise component; \(B(q)\) is input matrix; \(\Lambda^{T} (q)\) is binding matrix; \(\lambda\) is Lagrange multiplier vector.

2.3 Kinematic Model

The kinematic error model \(q_{e}\) of a self-propelled robot is a mathematical equation describing the deviation of the robot's position and posture, when the motion-controlled robot follows a desired trajectory ξd. The system of error function equations as follows:

$$ \dot{q}_{e} = \left[ {\begin{array}{*{20}c} {\dot{x}_{e} } \\ {\dot{y}_{e} } \\ {\dot{\theta }_{e} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\cos (\theta_{e} )} & 0 \\ {\sin (\theta_{e} )} & 0 \\ 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\vartheta_{r} } \\ {\omega_{r} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} { - 1} & {y_{e} } \\ 0 & { - x_{e} } \\ 0 & { - 1} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} \vartheta \\ \omega \\ \end{array} } \right] $$
(12)

3 Fuzzy Logic Controller Design

Use the inputs as bias and the difference derivative to configure the fuzzy logic controller, such as in Fig. 1 and Fig. 2. The transformed fuzzy block matches the data with the conditions of the given fuzzy rule. The output of the fuzzy set is converted to the clarity values through the centroid defuzzification method and converted into a control signal, as in Fig. 3. The FLC controller is controlled by rule table 1.

Fig. 1.
figure 1

Input of bias variable e

Fig. 2.
figure 2

Deviated variable derivative input de

Fig. 3.
figure 3

Output variable

Table 1. The rule control for FLC controller

4 Simulation Results on MATLAB/Simulink

The FLC controller is compared with PID controller. The parameters of the PID set are determined through the tuning simulation method on MATLAB/Simulink as \(K_{p} = 0.7;K_{I} = 0.6;K_{D} = 0.01\).

Case 1: the trajectory is a circular orbit with radius 1, center is origin.

The results of the two controllers when the robot follows the same circular trajectory and the simulated response is shown in Figs. 4 and 5.

Fig. 4.
figure 4

x, y position and system error using PID controller

Fig. 5.
figure 5

X, Y position and system error using FLC controller

Based on the figure results in Figs. 4, 5, it is shown that both controllers respond to the stability of the moving robot following a preset trajectory. However, the robot position error is small for the PID controller (0.01), with a longer response time (32s). On the other hand, while the FLC controller system error is only 0.006, the response time is faster than the PID controller with 25s.

Case 2: The trajectory is simulated, which is the crackling trajectory.

The position response of the two controls is expressed in Figs. 6, 7. It is evident from the graph findings in Figs. 6, 7, that both controls react to the stability of a moving robot following a predetermined course. The PID controller, however, has a minor robot position error (0.01) and a slower reaction time (3s). However, even though the FLC controller's system error is just 0.006, it responds more quickly than the PID controller, which takes 2s.

Fig. 6.
figure 6

Position and system error using traditional PID controller

Fig. 7.
figure 7

Position and system error using FLC controller

5 Conclusion

The paper has proposed a kinematic and dynamic model for a mobile robot with a differential actuator based on the Lagrange dynamic approach. Mobile Robot is moved according to the trajectory set by PID and FCL controller. The FLC controller has the advantages of a simple design and better performance than the PID controller, with an orbital error of 0.006 and a setting time of 25s. However, to improve the moving quality of the mobile robot more accurately and faster, it is necessary to use intelligent control methods such as neural network, sliding mode controller with chattering controller, or hybrid controllers such as FLC controller combined with PID controller or sliding mode control connected with FLC controller.