Wheeled Mobile Robots (WMRs) are the most widely used among the class of Mobile Robots. This is due to their fast manoeuvring, simple control and energy saving characteristics. These devices are becoming increasingly important in industry as a means of transport, inspection, and operation because of their efficiency and flexibility. In addition, mobile robots are useful for intervention in hostile environments performing tasks such as handling solid radioactive waste, decontaminating nuclear reactors, handling filters, patrolling buildings, minesweeping, etc. Furthermore, mobile robots can serve as a test platform for a variety of experiments in sensing the environment and making intelligent choices in response to it. The mobile robot is designed to move by two active wheels on the floor. The kinematic model of a wheeled mobile robot is configured as follows.
r is the instantaneous curvature radius of the robot trajectory, d is distance between two wheels, R is wheel radius, and α is angle between the robot’s orientation and x-axis path. This robot configuration uses independent linear velocities, vR for the right wheel and vL for the left wheel to move to a desired point (x; y) and a desired orientation α. The linear velocity of a wheel is directly proportional to its angular velocity. The relation between the linear velocity v(t) and angular velocity ω(t) of the robot depends on the linear velocities of the left and right wheel. The angular velocity of the robot is calculated by the following equations.
Where the angular velocity can be derived as:
Then, the linear velocity v is obtained as the following equation.
In addition, the robots position is calculated based on the linear velocity v and the angular velocity as bellows.
The model of the mobile robot can be written as
By obtaining the robot’s model, we can imply various type of controller. Since we do not have high dynamic or rapid motions, by using a PID controller we would have good enough tracking of robot.
This section discusses asymptotically stable tracking control. The controller is designed using Lyapunov stability theory.
The above figure shows the block diagram of a tracking control system for the non-holonomic mobile robot where the reference posture pr=[xr,yr,θr], and reference velocities, qr=[υr,ωr], are inputs from the discrete path information. This control structure is composed of an error block, a control rule, and a velocity limiter. Our velocity Limiter caused the PID controller as an adaptive controller, which its coefficients can be changed based on the position and attitude errors. First, the error posture, pe=[xe,ye,θe], is a transformation of the difference between the reference posture, [xr, yr, θr], and the current posture, [xc,yc,θc].
Then the tracking control input is calculated by feed-forward and feedback actions as
The control rule part is developed using a Lyapunov function. Moreover, the gains Kx, Ky, and Kθ of the state feedback can be found by trial and error, and velocity limiter is used to limit the translational and rotational velocities which are harmful for hardware of the WMR. In addition, to make the robot more robust in order to overcome different paths, we used adaptive algorithm which varies based on robot’s velocity, position and attitude errors. The initial parameters are set based on experience. Furthermore, to prove the stability of the control system, the following Lyapunov function is used.
To show the results of the first algorithm, as discussed before, a circle like path is assumed for robot to follow it. As we can see from figure (1), a XY-trajectory is designed.
If our robot path would be a circle shape and the maximum linear velocity set to 0.5 m/s, the proposed algorithm will show this excellent trajectory as illustrated in the following figure.
Furthermore, we can consider the yaw angle performance of the robot as:
As illustrated, it can be realized that the performance of the robot algorithm is as well as position tracking. Generally, by tuning the PID controller coefficients, we can change the performance of the system, although we can use other algorithms to tune them automatically like using Fuzzy PID controller. According to our first simulations, it is proved that this algorithm is good enough to get operator commands and apply them to robot successfully. Since we wanted to assess the algorithm with different paths, we used MATLAB toolbox, which has more details and can help us to perform our goals better.