Submit manuscript...
eISSN: 2574-8092

International Robotics & Automation Journal

Review Article Volume 5 Issue 5

Design of RTD-PID optimized neural networks controller for non-holonomic wheeled mobile robot

Chiraz Ben Jabeur, Hasene seddik

Department of Computer Science, University of Tunis, Tunisia

Correspondence: , Tel (216) 98 223 680, Fax (216) 71 391 166

Received: August 06, 2019 | Published: September 26, 2019

Citation: Jabeur CB, seddik H. Design of RTD-PID optimized neural networks controller for non-holonomic wheeled mobile robot. Int Rob Auto J. 2019;5(5):168-177. DOI: 10.15406/iratj.2019.05.00191

Download PDF

Abstract

In this paper, a new Real Time Dynamic Proportional Integrated Derivative approach “RTDPID” controlled by neural networks for non-holonomic wheeled mobile robot control is presented. The structure of the PID and the parameters that intervene in the control process are real time adjusted depending on the trajectory type and obstacles detected. The new proposed method is compared with the classical PID controller and has proved high efficiency and precision in real time control, especially when evaluated in a hostile environment, which leads to an autonomous decision making to cross over an obstacle or avoid it and stop the engine to protect it. The control process takes into account disturbances appearing during the mobile robot assignments evaluated in a hostile environment, reacts quickly, and adapts to changing environment conditions. In fact, both robot and the control process, faced with obstacles such as holes or stones, are autonomous when it comes to decision making. In case the obstacles are insurmountable, it is necessary to take a decision and stop the engine to avoid damaging it. In addition, an implementation of a kinematic and a dynamic model based on Lagrangien mechanics, are presented regarding non-holonomic and rolling without sliding constraints. This implementation has been developed and stimulated in real time on Matlab/Simulink environments. Incidentally, simulation results are given based on the effect of load torque applications on the mobile robot behavior. These simulation results are satisfactory and have demonstrated the effectiveness, robustness and high stability of the proposed technique. 

Keywords: robotics, PID controller, hostile environment, neural networks, wheel differential drive, mobile robot, kinematic model, dynamic model, tracking control, speed control

Introduction

In recent years, so much interest has been shown in autonomous vehicles, especially, the two-wheeled and differential mobile robot; which is one of the simplest and most handled structures in mechatronics system design. Thus, so much attention is paid to mobile robotics control in a wide range of applications.

Many researchers have been carried on different aspects of mobile robot design, modeling and control in terms of tracking control and obstacle avoidance.1

In fact, many efforts have been devoted to the tracking control of the two-wheeled and non-holonomic mobile robots and many types of controllers were applied to overcome trajectory tracking problems. Some of them have been investigated based on conventional methods using PID control,2,3 robust control,4,5 sliding mode control,6–8 adaptive control.9,10 The others are based on artificial intelligence using fuzzy control11–13 and neural control.14–16 In fact, neural networks are recommended for intelligent control of nonlinear dynamic systems. Principally, this is due to two important properties of neural networks: their ability to learn, and their good performance for optimization. Nowadays, much attention is devoted to the use of neural network-based control of mobile robots for trajectory following. The principle of the method is based on a multilayer feed-forward neural networks with back-propagation learning algorithm, and it has been shown that only one hidden layer can be largely sufficient to approximate any continuous functions.

In,3 a PID-based neural network is developed for velocity and orientation, tracking control of a non-holonomic mobile robot that is appropriate for a kind of plant with nonlinearity uncertainties and disturbances.

In this paper, we propose a control approach based on a superb mixture of a conventional PID controller and recurrent neural networks for controlling a mobile robot with non-holonomic constraints. Our case study concerns trajectory tracking control against disturbances that occur while the robot is fulfilling its mission. In fact, the robot must have an  Appropriate behavior concerning these disturbances and must be autonomous for the decision making: it can decelerate and then continue its trajectory, stop depending on the size of the obstacles and the power of the robot to surmount it, or change its trajectory. As a consequence, the robot can protect itself and avoid damaging the motors that drive it. 

Generally, the controller design is based on kinematic and dynamic models in addition to the dynamics coming from the electric motors. The dynamic model allows considering some properties such as: mass, inertia, friction forces, centrifugal force, torque, etc. Such models are considered in order to better understand the structure of the controlled mechatronic system.

This article is composed of five sections. The first section is the introduction. The second section deals with kinematic and dynamic modeling. In the third section, the classical PID control strategy and the PID controller optimized neural networks are brought to light. The forth section concerns the simulations and the results, and the fifth section is the conclusion.

Robot system modelling

The basic modelling of the two wheeled mobile robot is based on the kinematic and dynamic models,17,18 in addition to the DC motor dynamics that must be taken into account.19,20 In fact, the control inputs of the robot dynamic model are the torques delivered by the two DC motors incorporated in the left and the right wheels.

Illustration of the kinematic model

Coordinates and non-holonomic constraints: The typical model of non-holonomic wheeled mobile robot is shown in the Figure 1 the robot is operated with two wheels in addition to a castor one ensuring its stability.

Figure 1 Posture of non-holonomic wheeled mobile robot.

Firstly, we need to define two different coordinate frames:

  1. An inertial and global reference frame in the environment, in which the robot moves in. It is denoted as 0 ( O 0 , i 0 , j 0 , k 0 ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaamrr1ngBPrMrYf 2A0vNCaeHbfv3ySLgzGyKCHTgD1jhaiuaaqaaaaaaaaaWdbiab=Xri s9aadaWgaaWcbaWdbiaaicdaa8aabeaak8qadaqadaWdaeaapeGaam 4ta8aadaWgaaWcbaWdbiaaicdaa8aabeaak8qacaGGSaWdamaaFiaa baWdbiaadMgapaWaaSbaaSqaa8qacaaIWaaapaqabaaakiaawEnia8 qacaGGSaWdamaaFiaabaWdbiaadQgapaWaaSbaaSqaa8qacaaIWaaa paqabaaakiaawEnia8qacaGGSaWdamaaFiaabaWdbiaadUgapaWaaS baaSqaa8qacaaIWaaapaqabaaakiaawEniaaWdbiaawIcacaGLPaaa aaa@55BC@ :
  2. A local frame which is attached to the robot and is denoted as ( O , i , j , k ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaamrr1ngBPrMrYf 2A0vNCaeHbfv3ySLgzGyKCHTgD1jhaiuaaqaaaaaaaaaWdbiqb=Xri s9aagaqba8qadaqadaWdaeaapeGabm4ta8aagaqba8qacaGGSaWdam aaFiaabaWdbiqadMgapaGbauaaaiaawEnia8qacaGGSaWdamaaFiaa baWdbiqadQgapaGbauaaaiaawEnia8qacaGGSaWdamaaFiaabaWdbi qadUgapaGbauaaaiaawEniaaWdbiaawIcacaGLPaaaaaa@50AD@ :

The origin of the local robot frame is the mid-point O’ on the axe between the wheels and the centre of mass C is at a distance d from the origin O’.

The posture of any point in the robot can be represented in the local frame as q = ( x y θ ) T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GabmyCa8aagaqba8qacqGH9aqpdaqadaWdaeaapeGabmiEa8aagaqb a8qaceWG5bWdayaafaWdbiabeI7aXbGaayjkaiaawMcaa8aadaahaa Wcbeqaa8qacaWGubaaaaaa@402A@ :and in the inertial frame as: q I = ( x I   y I θ ) T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamyCa8aadaWgaaWcbaWdbiaadMeaa8aabeaak8qacqGH9aqpdaqa daWdaeaapeGaamiEa8aadaWgaaWcbaWdbiaadMeaa8aabeaak8qaca GGGcGaamyEa8aadaWgaaWcbaWdbiaadMeaa8aabeaak8qacqaH4oqC aiaawIcacaGLPaaapaWaaWbaaSqabeaapeGaamivaaaaaaa@4493@

Where:

x^',y^' MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamiEa8aacayGEbGaag4ja8qacaGGSaGaamyEa8aacayGEbGaag4j aaaa@3F1E@ : are coordinates in the local frame,

x I ,  y I MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamiEa8aadaWgaaWcbaWdbiaadMeaa8aabeaak8qacaGGSaGaaiiO aiaadMhapaWaaSbaaSqaa8qacaWGjbaapaqabaaaaa@3D68@ : are coordinates in the inertial frame,

θ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaeqiUdehaaa@38E5@ : is the angle between the heading direction and the x axis.

The two coordinates are linked by the orthogonal rotation matrix as follows: R( θ )=( cosθ sinθ 0 sinθ cosθ 0 0 0 1 ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamOuamaabmaapaqaa8qacqaH4oqCaiaawIcacaGLPaaacqGH9aqp daqadaWdaeaafaqabeWadaaabaWdbiaadogacaWGVbGaam4CaiabeI 7aXbWdaeaapeGaeyOeI0Iaam4CaiaadMgacaWGUbGaeqiUdehapaqa a8qacaaIWaaapaqaa8qacaWGZbGaamyAaiaad6gacqaH4oqCa8aaba WdbiaadogacaWGVbGaam4CaiabeI7aXbWdaeaapeGaaGimaaWdaeaa peGaaGimaaWdaeaapeGaaGimaaWdaeaapeGaaGymaaaaaiaawIcaca GLPaaaaaa@55E3@ (1)

We can apply the same transformation between frames on motions as: q ˙ I =R( θ ) q ˙ ' MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GabmyCa8aagaGaamaaBaaaleaapeGaamysaaWdaeqaaOWdbiabg2da 9iaadkfadaqadaWdaeaapeGaeqiUdehacaGLOaGaayzkaaGabmyCa8 aagaGaamaaCaaaleqabaWdbiaacEcaaaaaaa@40A1@ (2)

This equation is very important, because it defines relations between velocities in the inertial frame and the local frame. In fact, motions of a differential-drive mobile robot are described by two non-holonomic conditions which are:

  1. 1st Condition: in the local robot frame, the velocity of the center-point O’ is zero along the lateral axis:

                                                                                      y ˙ =0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GabmyEa8aagaGaa8qacqGH9aqpcaaIWaaaaa@3A15@ (3)

Considering the orthogonal rotation matrix, the velocity in the inertial frame gives:

                                                                                 x ˙ sinθ+ y ˙ cosθ=0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaeyOeI0IabmiEa8aagaGaa8qacaWGZbGaamyAaiaad6gacqaH4oqC cqGHRaWkceWG5bWdayaacaWdbiaadogacaWGVbGaam4CaiabeI7aXj abg2da9iaaicdaaaa@4622@ (4)

II. 2nd Condition: each wheel maintains one contact point S with the ground. The velocities of the contact points in the robot frame are related to the wheel velocities by: { v sr =r φ ˙ wr v sl =r φ ˙ wl MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qacaWG2bWdamaaBaaaleaapeGa am4Caiaadkhaa8aabeaak8qacqGH9aqpcaWGYbGafqOXdO2dayaaca WaaSbaaSqaa8qacaWG3bGaamOCaaWdaeqaaaGcbaWdbiaadAhapaWa aSbaaSqaa8qacaWGZbGaamiBaaWdaeqaaOWdbiabg2da9iaadkhacu aHgpGApaGbaiaadaWgaaWcbaWdbiaadEhacaWGSbaapaqabaaaaaGc peGaay5Eaaaaaa@4B79@ (5)

φ ˙ wr and φ ˙ wl MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GafqOXdO2dayaacaWaaSbaaSqaa8qacaWG3bGaamOCaaWdaeqaaOWd biaadggacaWGUbGaamizaiqbeA8aQ9aagaGaamaaBaaaleaapeGaam 4DaiaadYgaa8aabeaaaaa@422B@ Are angular velocities of right and left wheels.

The positions of left and right wheels in the inertial frame are expressed with:

{ x wl =xLsinθ x wl =y+Lcosθ  and{ x wr =x+Lsinθ x wr =yLcosθ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qacaWG4bWdamaaBaaaleaapeGa am4DaiaadYgaa8aabeaak8qacqGH9aqpcaWG4bGaeyOeI0Iaamitai aadohacaWGPbGaamOBaiabeI7aXbWdaeaapeGaamiEa8aadaWgaaWc baWdbiaadEhacaWGSbaapaqabaGcpeGaeyypa0JaamyEaiabgUcaRi aadYeacaWGJbGaam4BaiaadohacqaH4oqCaaaacaGL7baacaGGGcGa amyyaiaad6gacaWGKbWaaiqaa8aabaqbaeqabiqaaaqaa8qacaWG4b WdamaaBaaaleaapeGaam4Daiaadkhaa8aabeaak8qacqGH9aqpcaWG 4bGaey4kaSIaamitaiaadohacaWGPbGaamOBaiabeI7aXbWdaeaape GaamiEa8aadaWgaaWcbaWdbiaadEhacaWGYbaapaqabaGcpeGaeyyp a0JaamyEaiabgkHiTiaadYeacaWGJbGaam4BaiaadohacqaH4oqCaa aacaGL7baaaaa@6C85@ (6)

Considering the rotation matrix R(θ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamOua8aacaGGOaWdbiabeI7aX9aacaGGPaaaaa@3B42@ , the velocities of right and left wheels are given by:

{ x ˙ wl r φ ˙ wl cosθ=0 y ˙ wl r φ ˙ wl sinθ=0  and { x ˙ wr r φ ˙ wr cosθ=0 y ˙ wr r φ ˙ wr sinθ=0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qaceWG4bWdayaacaWaaSbaaSqa a8qacaWG3bGaamiBaaWdaeqaaOWdbiabgkHiTiaadkhacuaHgpGApa GbaiaadaWgaaWcbaWdbiaadEhacaWGSbaapaqabaGcpeGaam4yaiaa d+gacaWGZbGaeqiUdeNaeyypa0JaaGimaaWdaeaapeGabmyEa8aaga GaamaaBaaaleaapeGaam4DaiaadYgaa8aabeaak8qacqGHsislcaWG YbGafqOXdO2dayaacaWaaSbaaSqaa8qacaWG3bGaamiBaaWdaeqaaO WdbiaadohacaWGPbGaamOBaiabeI7aXjabg2da9iaaicdaaaaacaGL 7baacaGGGcGaamyyaiaad6gacaWGKbGaaiiOamaaceaapaqaauaabe qaceaaaeaapeGabmiEa8aagaGaamaaBaaaleaapeGaam4Daiaadkha a8aabeaak8qacqGHsislcaWGYbGafqOXdO2dayaacaWaaSbaaSqaa8 qacaWG3bGaamOCaaWdaeqaaOWdbiaadogacaWGVbGaam4CaiabeI7a Xjabg2da9iaaicdaa8aabaWdbiqadMhapaGbaiaadaWgaaWcbaWdbi aadEhacaWGYbaapaqabaGcpeGaeyOeI0IaamOCaiqbeA8aQ9aagaGa amaaBaaaleaapeGaam4Daiaadkhaa8aabeaak8qacaWGZbGaamyAai aad6gacqaH4oqCcqGH9aqpcaaIWaaaaaGaay5Eaaaaaa@7E17@ (7)

Replacing positions equations in the velocities equations, we obtain:

{ xLsinθ . r φ ˙ wl cosθ=0 y+Lcosθ . r φ ˙ wl sinθ=0  and { x+Lsinθ . r φ ˙ wr cosθ=0 yLcosθ . r φ ˙ wr sinθ=0 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaamaaceaabaqbae qabiqaaaqaamaayeaabaGaamiEaiabgkHiTiaadYeaciGGZbGaaiyA aiaac6gacqaH4oqCaSqaaiaac6caaOGaay5n+dGaeyOeI0IaamOCai qbeA8aQzaacaWaaSbaaSqaaiaadEhacaWGSbaabeaakiGacogacaGG VbGaai4CaiabeI7aXjabg2da9iaaicdaaeaadaagbaqaaiaacMhacq GHRaWkcaGGmbGaai4yaiaac+gacaGGZbGaeqiUdehaleaacaGGUaaa kiaawEJ=aiabgkHiTiaadkhacuaHgpGAgaGaamaaBaaaleaacaWG3b GaamiBaaqabaGcciGGZbGaaiyAaiaac6gacqaH4oqCcqGH9aqpcaaI WaaaaaGaay5Eaaaeaaaaaaaaa8qacaGGGcGaamyyaiaad6gacaWGKb GaaiiOamaaceaabaqbaeqabiqaaaqaa8aadaagbaqaaiaadIhacqGH RaWkcaWGmbGaci4CaiaacMgacaGGUbGaeqiUdehaleaacaGGUaaaki aawEJ=aiabgkHiTiaadkhacuaHgpGAgaGaamaaBaaaleaacaWG3bGa amOCaaqabaGcciGGJbGaai4BaiaacohacqaH4oqCcqGH9aqpcaaIWa aapeqaa8aadaagbaqaaiaadMhacqGHsislcaWGmbGaci4yaiaac+ga caGGZbGaeqiUdehaleaacaGGUaaakiaawEJ=aiabgkHiTiaadkhacu aHgpGAgaGaamaaBaaaleaacaWG3bGaamOCaaqabaGcciGGZbGaaiyA aiaac6gacqaH4oqCcqGH9aqpcaaIWaaaaaWdbiaawUhaaaaa@96FC@ (8)

Thus the rolling constraint equations are formulated as follows:

{ x ˙ L θ ˙ cosθr φ ˙ wl cosθ=0 y ˙ L θ ˙ sinθr φ ˙ wl sinθ=0 x ˙ +L θ ˙ cosθr φ ˙ wr cosθ=0 y ˙ +L θ ˙ sinθr φ ˙ wr sinθ=0 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaauaabeqaceaaaeaapeGabmiEa8aa gaGaa8qacqGHsislcaWGmbGafqiUde3dayaacaWdbiaadogacaWGVb Gaam4CaiabeI7aXjabgkHiTiaadkhacuaHgpGApaGbaiaadaWgaaWc baWdbiaadEhacaWGSbaapaqabaGcpeGaam4yaiaad+gacaWGZbGaeq iUdeNaeyypa0JaaGimaaWdaeaapeGabmyEa8aagaGaa8qacqGHsisl caWGmbGafqiUde3dayaacaWdbiaadohacaWGPbGaamOBaiabeI7aXj abgkHiTiaadkhacuaHgpGApaGbaiaadaWgaaWcbaWdbiaadEhacaWG SbaapaqabaGcpeGaam4CaiaadMgacaWGUbGaeqiUdeNaeyypa0JaaG imaaaaa8aabaqbaeqabiqaaaqaa8qaceWG4bWdayaacaWdbiabgUca RiaadYeacuaH4oqCpaGbaiaapeGaam4yaiaad+gacaWGZbGaeqiUde NaeyOeI0IaamOCaiqbeA8aQ9aagaGaamaaBaaaleaapeGaam4Daiaa dkhaa8aabeaak8qacaWGJbGaam4BaiaadohacqaH4oqCcqGH9aqpca aIWaaapaqaa8qaceWG5bWdayaacaWdbiabgUcaRiaadYeacuaH4oqC paGbaiaapeGaam4CaiaadMgacaWGUbGaeqiUdeNaeyOeI0IaamOCai qbeA8aQ9aagaGaamaaBaaaleaapeGaam4Daiaadkhaa8aabeaak8qa caWGZbGaamyAaiaad6gacqaH4oqCcqGH9aqpcaaIWaaaaaaaaiaawU haaaaa@8F78@ (9)

 We can express these equations by the following matrix A T (q MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyqa8aadaahaaWcbeqaa8qacaWGubaaaOGaaiikaiaadghaaaa@3AC6@ of non-holonomic constraints: A T ( q )=( sinθ cosθ 0 cosθ sinθ L cosθ sinθ L      0 r 0      0 0 r ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqr1ngB PrgifHhDYfgasaacPi=BMqFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq =Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0x fr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaaeaaaaaa aaa8qacaWGbbWdamaaCaaaleqabaWdbiaadsfaaaGcdaqadaWdaeaa peGaamyCaaGaayjkaiaawMcaaiabg2da9maabmaapaqaauaabeqadm aaaeaapeGaeyOeI0Iaam4CaiaadMgacaWGUbGaeqiUdehapaqaa8qa caWGJbGaam4BaiaadohacqaH4oqCa8aabaWdbiaaicdaa8aabaWdbi aadogacaWGVbGaam4CaiabeI7aXbWdaeaapeGaam4CaiaadMgacaWG UbGaeqiUdehapaqaa8qacaWGmbaapaqaa8qacaWGJbGaam4Baiaado hacqaH4oqCa8aabaWdbiaadohacaWGPbGaamOBaiabeI7aXbWdaeaa peGaeyOeI0IaamitaaaacaGGGcGaaiiOaiaacckacaGGGcWdauaabe qadeaaaeaapeGaaGimaaWdaeaapeGaeyOeI0IaamOCaaWdaeaapeGa aGimaaaacaGGGcGaaiiOaiaacckacaGGGcWdauaabeqadeaaaeaape GaaGimaaWdaeaapeGaaGimaaWdaeaapeGaeyOeI0IaamOCaaaaaiaa wIcacaGLPaaaaaa@715D@ (10)

This matrix of constraints and the posture vector verify:

A T ( q ) q ˙ =( sinθ cosθ 0 cosθ sinθ L cosθ sinθ L      0 r 0      0 0 r )( x ˙ y ˙ θ ˙ φ ˙ r φ ˙ l ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyqa8aadaahaaWcbeqaa8qacaWGubaaaOWaaeWaa8aabaWdbiaa dghaaiaawIcacaGLPaaaceWGXbWdayaacaWdbiabg2da9maabmaapa qaauaabeqadmaaaeaapeGaeyOeI0Iaam4CaiaadMgacaWGUbGaeqiU dehapaqaa8qacaWGJbGaam4BaiaadohacqaH4oqCa8aabaWdbiaaic daa8aabaWdbiaadogacaWGVbGaam4CaiabeI7aXbWdaeaapeGaam4C aiaadMgacaWGUbGaeqiUdehapaqaa8qacaWGmbaapaqaa8qacaWGJb Gaam4BaiaadohacqaH4oqCa8aabaWdbiaadohacaWGPbGaamOBaiab eI7aXbWdaeaapeGaeyOeI0IaamitaaaacaGGGcGaaiiOaiaacckaca GGGcWdauaabeqadeaaaeaapeGaaGimaaWdaeaapeGaeyOeI0IaamOC aaWdaeaapeGaaGimaaaacaGGGcGaaiiOaiaacckacaGGGcWdauaabe qadeaaaeaapeGaaGimaaWdaeaapeGaaGimaaWdaeaapeGaeyOeI0Ia amOCaaaaaiaawIcacaGLPaaadaqadaWdaeaafaqabeWabaaabaWdbi qadIhapaGbaiaaaeaapeGabmyEa8aagaGaaaqaauaabeqadeaaaeaa peGafqiUde3dayaacaaabaWdbiqbeA8aQ9aagaGaamaaBaaaleaape GaamOCaaWdaeqaaaGcbaWdbiqbeA8aQ9aagaGaamaaBaaaleaapeGa amiBaaWdaeqaaaaaaaaak8qacaGLOaGaayzkaaaaaa@7D11@ (11)

Kinematic model: The main principle of kinematic modeling is to provide relationships between linear and angular robot velocities and angular velocities of left and right wheels. The overall study is based on the mechanical system motion without taking into consideration forces.

From the matrix constraints, we can give the derivative posture as functions of wheels angular velocities: { x ˙ = r 2 ( φ ˙ wr + φ ˙ wl )cosθ y ˙ = r 2 ( φ ˙ wr + φ ˙ wl )sinθ θ ˙ = r 2L ( φ ˙ wr φ ˙ wl ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qaceWG4bWdayaacaWdbiabg2da 9maalaaapaqaa8qacaWGYbaapaqaa8qacaaIYaaaamaabmaapaqaa8 qacuaHgpGApaGbaiaadaWgaaWcbaWdbiaadEhacaWGYbaapaqabaGc peGaey4kaSIafqOXdO2dayaacaWaaSbaaSqaa8qacaWG3bGaamiBaa WdaeqaaaGcpeGaayjkaiaawMcaaiaadogacaWGVbGaam4CaiabeI7a XbWdaeaafaqabeGabaaabaWdbiqadMhapaGbaiaapeGaeyypa0ZaaS aaa8aabaWdbiaadkhaa8aabaWdbiaaikdaaaWaaeWaa8aabaWdbiqb eA8aQ9aagaGaamaaBaaaleaapeGaam4Daiaadkhaa8aabeaak8qacq GHRaWkcuaHgpGApaGbaiaadaWgaaWcbaWdbiaadEhacaWGSbaapaqa baaak8qacaGLOaGaayzkaaGaam4CaiaadMgacaWGUbGaeqiUdehapa qaa8qacuaH4oqCpaGbaiaapeGaeyypa0ZaaSaaa8aabaWdbiaadkha a8aabaWdbiaaikdacaWGmbaaamaabmaapaqaa8qacuaHgpGApaGbai aadaWgaaWcbaWdbiaadEhacaWGYbaapaqabaGcpeGaeyOeI0IafqOX dO2dayaacaWaaSbaaSqaa8qacaWG3bGaamiBaaWdaeqaaaGcpeGaay jkaiaawMcaaaaaaaaacaGL7baaaaa@708D@ (12)

The linear velocity of each driving wheel in the robot frame is:

{ v wr =r φ ˙ wr v wl =r φ ˙ wl MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qacaWG2bWdamaaBaaaleaapeGa am4Daiaadkhaa8aabeaak8qacqGH9aqpcaWGYbGafqOXdO2dayaaca WaaSbaaSqaa8qacaWG3bGaamOCaaWdaeqaaaGcbaWdbiaadAhapaWa aSbaaSqaa8qacaWG3bGaamiBaaWdaeqaaOWdbiabg2da9iaadkhacu aHgpGApaGbaiaadaWgaaWcbaWdbiaadEhacaWGSbaapaqabaaaaaGc peGaay5Eaaaaaa@4B81@ (13)

Therefore, the linear velocity of the robot is the average of the linear velocities of the two wheels: v= 1 2 ( v wr + v wl )= r 2 ( φ ˙ wr + φ ˙ wl ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamODaiabg2da9maalaaapaqaa8qacaaIXaaapaqaa8qacaaIYaaa amaabmaapaqaa8qacaWG2bWdamaaBaaaleaapeGaam4Daiaadkhaa8 aabeaak8qacqGHRaWkcaWG2bWdamaaBaaaleaapeGaam4DaiaadYga a8aabeaaaOWdbiaawIcacaGLPaaacqGH9aqpdaWcaaWdaeaapeGaam OCaaWdaeaapeGaaGOmaaaadaqadaWdaeaapeGafqOXdO2dayaacaWa aSbaaSqaa8qacaWG3bGaamOCaaWdaeqaaOWdbiabgUcaRiqbeA8aQ9 aagaGaamaaBaaaleaapeGaam4DaiaadYgaa8aabeaaaOWdbiaawIca caGLPaaaaaa@5222@ (14)

And the angular velocity of the robot is expressed with the two wheels angular velocities as:

ω=θ.=r2L( φ ˙ wr φ ˙ wl)(15)

On the contrary, we can obtain the two wheels angular velocities as functions of linear and angular robot velocities as:

φ ˙ wr = 1 r v L r ω and  φ ˙ wr = 1 r v+ L r ω MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqbeA8aQzaaca WaaSbaaSqaaiaadEhacaWGYbaabeaakiabg2da9maalaaabaGaaGym aaqaaiaadkhaaaGaamODaiabgkHiTmaalaaabaGaamitaaqaaiaadk haaaGaeqyYdCheaaaaaaaaa8qacaGGGcGaamyyaiaad6gacaWGKbGa aiiOa8aacuaHgpGAgaGaamaaBaaaleaacaWG3bGaamOCaaqabaGccq GH9aqpdaWcaaqaaiaaigdaaeaacaWGYbaaaiaadAhacqGHRaWkdaWc aaqaaiaadYeaaeaacaWGYbaaaiabeM8a3baa@54C4@ (16)

Finally, the forward robot kinematic model is given by:

q.=(x.y.θ.φ˙wrφ˙wl)=(cosθ0sinθ 0011rLr1r Lr)(vω)(17)

We can have also this model:

q ˙ =( x ˙ y ˙ θ ˙ φ ˙ wr φ ˙ wl )=( rcosθ rcosθ rsinθ rsinθ r 2l r 2l 1 0 0 1 )( φ ˙ wr φ ˙ wl ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqadghagaGaai abg2da9maabmaabaqbaeqabuqaaaaabaGabmiEayaacaaabaGabmyE ayaacaaabaGafqiUdeNbaiaaaeaacuaHgpGAgaGaamaaBaaaleaaca WG3bGaamOCaaqabaaakeaacuaHgpGAgaGaamaaBaaaleaacaWG3bGa amiBaaqabaaaaaGccaGLOaGaayzkaaGaeyypa0ZaaeWaaeaafaqabe qbcaaaaeaacaWGYbGaci4yaiaac+gacaGGZbGaeqiUdehabaGaamOC aiGacogacaGGVbGaai4CaiabeI7aXbqaaiaadkhaciGGZbGaaiyAai aac6gacqaH4oqCaeaacaWGYbGaci4CaiaacMgacaGGUbGaeqiUdeha baWaaSGaaeaacaWGYbaabaGaaGOmaiaadYgaaaaabaWaaSGaaeaacq GHsislcaWGYbaabaGaaGOmaiaadYgaaaaabaGaaGymaaqaaiaaicda aeaacaaIWaaabaGaaGymaaaaaiaawIcacaGLPaaadaqadaqaauaabe qaceaaaeaacuaHgpGAgaGaamaaBaaaleaacaWG3bGaamOCaaqabaaa keaacuaHgpGAgaGaamaaBaaaleaacaWG3bGaamiBaaqabaaaaaGcca GLOaGaayzkaaaaaa@71B6@ (18)

Dynamic modelling development

The main purpose is to represent robot dynamic model which is crucial for simulation study of various motion control algorithms design. The robot dynamic model should take into account different forces which affects its motion.

Generally, a non-holonomic differential robot with m constraints, n generalized coordinates and n-m inputs is illustrated by the above motion equation:

M( q ) q ¨ +C( q, q ˙ ) q ˙ +F( q ˙ )+G( q )+ τ q =B( q )τ+ A T ( q )λ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamytamaabmaapaqaa8qacaWGXbaacaGLOaGaayzkaaGabmyCa8aa gaWaa8qacqGHRaWkcaWGdbWaaeWaa8aabaWdbiaadghacaGGSaGabm yCa8aagaGaaaWdbiaawIcacaGLPaaaceWGXbWdayaacaWdbiabgUca RiaadAeadaqadaWdaeaapeGabmyCa8aagaGaaaWdbiaawIcacaGLPa aacqGHRaWkcaWGhbWaaeWaa8aabaWdbiaadghaaiaawIcacaGLPaaa cqGHRaWkcqaHepaDpaWaaSbaaSqaa8qacaWGXbaapaqabaGcpeGaey ypa0JaamOqamaabmaapaqaa8qacaWGXbaacaGLOaGaayzkaaGaeqiX dqNaey4kaSIaamyqa8aadaahaaWcbeqaa8qacaWGubaaaOWaaeWaa8 aabaWdbiaadghaaiaawIcacaGLPaaacqaH7oaBaaa@5D1B@ (19)

where:

M( q ) n×m MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamytamaabmaapaqaa8qacaWGXbaacaGLOaGaayzkaaGaeyicI48e fv3ySLgzgjxyRrxDYbqeguuDJXwAKbIrYf2A0vNCaGqbaiab=Xris9 aadaahaaWcbeqaa8qacaWGUbGaey41aqRaamyBaaaaaaa@4C40@ : Is a symmetric positive definite inertia matrix,

C( q, q ˙ )  n×m MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaam4qamaabmaapaqaa8qacaWGXbGaaiilaiqadghapaGbaiaaa8qa caGLOaGaayzkaaGaaiiOaiabgIGioprr1ngBPrMrYf2A0vNCaeHbfv 3ySLgzGyKCHTgD1jhaiuaacqWFCeIupaWaaWbaaSqabeaapeGaamOB aiabgEna0kaad2gaaaaaaa@4F28@ : Is the centripetal and coriolis matrix,

F( q ˙ ) n×1 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamOramaabmaapaqaa8qaceWGXbWdayaacaaapeGaayjkaiaawMca aiabgIGioprr1ngBPrMrYf2A0vNCaeHbfv3ySLgzGyKCHTgD1jhaiu aacqWFCeIupaWaaWbaaSqabeaapeGaamOBaiabgEna0kaaigdaaaaa aa@4C29@ : Is the surface friction matrix,

G( q ) n×1 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaam4ramaabmaapaqaa8qacaWGXbaacaGLOaGaayzkaaGaeyicI48e fv3ySLgzgjxyRrxDYbqeguuDJXwAKbIrYf2A0vNCaGqbaiab=Xris9 aadaahaaWcbeqaa8qacaWGUbGaey41aqRaaGymaaaaaaa@4C02@ : Is the gravitational vector,

τ p R ( nm )*1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaeqiXdq3damaaBaaaleaapeGaamiCaaWdaeqaaOWdbiabgIGiolaa dkfapaWaaWbaaSqabeaapeWaaeWaa8aabaWdbiaad6gacqGHsislca WGTbaacaGLOaGaayzkaaGaaiOkaiaaigdaaaaaaa@42E7@ : Is the bounded unknown disturbance,

B( q ) n×( nm ) : MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaamOqamaabmaapaqaa8qacaWGXbaacaGLOaGaayzkaaGaeyicI48e fv3ySLgzgjxyRrxDYbqeguuDJXwAKbIrYf2A0vNCaGqbaiab=Xris9 aadaahaaWcbeqaa8qacaWGUbGaey41aq7aaeWaa8aabaWdbiaad6ga cqGHsislcaWGTbaacaGLOaGaayzkaaaaaOGaaiOoaaaa@5084@ Is the input matrix,

τ ( nm )×1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaeqiXdqNaeyicI48efv3ySLgzgjxyRrxDYbqeguuDJXwAKbIrYf2A 0vNCaGqbaiab=Xris9aadaahaaWcbeqaa8qadaqadaWdaeaapeGaam OBaiabgkHiTiaad2gaaiaawIcacaGLPaaacqGHxdaTcaaIXaaaaaaa @4DE5@ Is the control input vector, provided by actuators,

A T ( q ) : MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyqa8aadaahaaWcbeqaa8qacaWGubaaaOWaaeWaa8aabaWdbiaa dghaaiaawIcacaGLPaaacaGGGcGaaiOoaaaa@3DA4@ Is the matrix associated with the kinematic constraints and verify, and  is the Lagrange multipliers vector.

The approach used for such modeling is the Lagrange dynamic approach.19,20 The principle of the method is analytically based on the kinetic and potential energies of the system.

The following equation describes the Lagrange equation: d dt ( L q ˙ ) T ( L q ) T =B( q )τ+ A T ( q )λ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape WaaSaaa8aabaWdbiaadsgaa8aabaWdbiaadsgacaWG0baaamaabmaa paqaa8qadaWcaaWdaeaapeGaeyOaIyRaamitaaWdaeaapeGaeyOaIy RabmyCa8aagaGaaaaaa8qacaGLOaGaayzkaaWdamaaCaaaleqabaWd biaadsfaaaGccqGHsisldaqadaWdaeaapeWaaSaaa8aabaWdbiabgk Gi2kaadYeaa8aabaWdbiabgkGi2kaadghaaaaacaGLOaGaayzkaaWd amaaCaaaleqabaWdbiaadsfaaaGccqGH9aqpcaWGcbWaaeWaa8aaba WdbiaadghaaiaawIcacaGLPaaacqaHepaDcqGHRaWkcaWGbbWdamaa CaaaleqabaWdbiaadsfaaaGcdaqadaWdaeaapeGaamyCaaGaayjkai aawMcaaiabeU7aSbaa@5825@ (20)

Where: L(q, q ˙ )=U(q, q ˙ )T(q) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadYeacaGGOa GaamyCaiaacYcaceWGXbGbaiaacaGGPaGaeyypa0JaaiyvaiaacIca caGGXbGaaiilaiqacghagaGaaiaacMcacqGHsislcaWGubGaaiikai aadghacaGGPaaaaa@45CD@ (21)

In the Lagrangian function, U is the kinetic energy, T is the potential energy, q is the generalized coordinates, (𝑞) is a matrix that relies actuators torques and generalized forces;

First of all, kinetic and potential energies that govern the motion of the robot should be calculated. And since the robot is moving in the inertial frame, its potential energy is considered to be zero.

The generalized coordinates are selected as: q ˙ = ( x ˙ y ˙ θ ˙ φ ˙ wr φ ˙ wl ) T MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GabmyCa8aagaGaa8qacqGH9aqpdaqadaWdaeaafaqabeqadaaabaWd biqadIhapaGbaiaaaeaapeGabmyEa8aagaGaaaqaauaabeqabmaaae aapeGafqiUde3dayaacaaabaWdbiqbeA8aQ9aagaGaamaaBaaaleaa peGaae4Daiaadkhaa8aabeaaaOqaa8qacuaHgpGApaGbaiaadaWgaa WcbaWdbiaabEhacaWGSbaapaqabaaaaaaaaOWdbiaawIcacaGLPaaa paWaaWbaaSqabeaapeGaamivaaaaaaa@48B6@ (22)

The global kinetic energies of the robot consist on the sum of the kinetic energy of the robot platform with the kinetic energies of the wheels and actuators. This relation is given by:

U( q, q ˙ )= U c ( q, q ˙ )+ U wr ( q, q ˙ )+ U wl ( q, q ˙ ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyvamaabmaapaqaa8qacaWGXbGaaiilaiqadghapaGbaiaaa8qa caGLOaGaayzkaaGaeyypa0Jaamyva8aadaWgaaWcbaWdbiaadogaa8 aabeaak8qadaqadaWdaeaapeGaamyCaiaacYcaceWGXbWdayaacaaa peGaayjkaiaawMcaaiabgUcaRiaadwfapaWaaSbaaSqaa8qacaWG3b GaamOCaaWdaeqaaOWdbmaabmaapaqaa8qacaWGXbGaaiilaiqadgha paGbaiaaa8qacaGLOaGaayzkaaGaey4kaSIaamyva8aadaWgaaWcba WdbiaadEhacaWGSbaapaqabaGcpeWaaeWaa8aabaWdbiaadghacaGG SaGabmyCa8aagaGaaaWdbiaawIcacaGLPaaaaaa@5535@ (23)

Where:

U c ( q, q ˙ )  MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyva8aadaWgaaWcbaWdbiaadogaa8aabeaak8qadaqadaWdaeaa peGaamyCaiaacYcaceWGXbWdayaacaaapeGaayjkaiaawMcaaiaacc kaaaa@3EF5@ is the kinetic energy of the robot platform defined as: U c ( q, q ˙ )= 1 2 m c v c 2 + 1 2 I c θ ˙ 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyva8aadaWgaaWcbaWdbiaadogaa8aabeaak8qadaqadaWdaeaa peGaamyCaiaacYcaceWGXbWdayaacaaapeGaayjkaiaawMcaaiabg2 da9maalaaapaqaa8qacaaIXaaapaqaa8qacaaIYaaaaiaad2gapaWa aSbaaSqaa8qacaWGJbaapaqabaGcpeGaamODa8aadaqhaaWcbaWdbi aadogaa8aabaWdbiaaikdaaaGccqGHRaWkdaWcaaWdaeaapeGaaGym aaWdaeaapeGaaGOmaaaacaWGjbWdamaaBaaaleaapeGaam4yaaWdae qaaOWdbiqbeI7aX9aagaGaamaaCaaaleqabaWdbiaaikdaaaaaaa@4D96@    (24)

U wr ( q, q ˙ ) : MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyva8aadaWgaaWcbaWdbiaadEhacaWGYbaapaqabaGcpeWaaeWa a8aabaWdbiaadghacaGGSaGabmyCa8aagaGaaaWdbiaawIcacaGLPa aacaGGGcGaaiOoaaaa@40BE@ is the kinetic energy of the right wheel given by:

U wr ( q, q ˙ )= 1 2 m w v wr 2 + 1 2 I m θ ˙ 2 + 1 2 I w φ ˙ wr 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyva8aadaWgaaWcbaWdbiaadEhacaWGYbaapaqabaGcpeWaaeWa a8aabaWdbiaadghacaGGSaGabmyCa8aagaGaaaWdbiaawIcacaGLPa aacqGH9aqpdaWcaaWdaeaapeGaaGymaaWdaeaapeGaaGOmaaaacaWG TbWdamaaBaaaleaapeGaam4DaaWdaeqaaOWdbiaadAhapaWaa0baaS qaa8qacaWG3bGaamOCaaWdaeaapeGaaGOmaaaakiabgUcaRmaalaaa paqaa8qacaaIXaaapaqaa8qacaaIYaaaaiaadMeapaWaaSbaaSqaa8 qacaWGTbaapaqabaGcpeGafqiUde3dayaacaWaaWbaaSqabeaapeGa aGOmaaaakiabgUcaRmaalaaapaqaa8qacaaIXaaapaqaa8qacaaIYa aaaiaadMeapaWaaSbaaSqaa8qacaWG3baapaqabaGcpeGafqOXdO2d ayaacaWaa0baaSqaa8qacaWG3bGaamOCaaWdaeaapeGaaGOmaaaaaa a@5999@ (25)

U wl ( q, q ˙ )  MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyva8aadaWgaaWcbaWdbiaadEhacaWGSbaapaqabaGcpeWaaeWa a8aabaWdbiaadghacaGGSaGabmyCa8aagaGaaaWdbiaawIcacaGLPa aacaGGGcaaaa@3FFA@ Is the kinetic energy of the left wheel given by:

U wl ( q, q ˙ )= 1 2 m w v wl 2 + 1 2 I m θ ˙ 2 + 1 2 I w φ ˙ wl 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamyva8aadaWgaaWcbaWdbiaadEhacaWGSbaapaqabaGcpeWaaeWa a8aabaWdbiaadghacaGGSaGabmyCa8aagaGaaaWdbiaawIcacaGLPa aacqGH9aqpdaWcaaWdaeaapeGaaGymaaWdaeaapeGaaGOmaaaacaWG TbWdamaaBaaaleaapeGaam4DaaWdaeqaaOWdbiaadAhapaWaa0baaS qaa8qacaWG3bGaamiBaaWdaeaapeGaaGOmaaaakiabgUcaRmaalaaa paqaa8qacaaIXaaapaqaa8qacaaIYaaaaiaadMeapaWaaSbaaSqaa8 qacaWGTbaapaqabaGcpeGafqiUde3dayaacaWaaWbaaSqabeaapeGa aGOmaaaakiabgUcaRmaalaaapaqaa8qacaaIXaaapaqaa8qacaaIYa aaaiaadMeapaWaaSbaaSqaa8qacaWG3baapaqabaGcpeGafqOXdO2d ayaacaWaa0baaSqaa8qacaWG3bGaamiBaaWdaeaapeGaaGOmaaaaaa a@5987@ (26)

where, mc is the mass of the robot platform, mw is the mass of each driving wheel, Ic is the moment of inertia of the robot through the center of mass, Im is the moment of inertia of each driving wheel with a motor about the wheel axis, and Iw is the moment of inertia of each driving wheel with a motor about the wheel diameter.

With consideration to the center of mass coordinates and the two wheels coordinates in the local frame, these equations depend on the generalized coordinates x and y as:

Uc(q,q.)=12mc((x.dθsinθ.)2+(y.+dθcosθ.)2)+12Icθ.2 (27)

Uwr(q,q.)=12mw((x.Lθ.cosθ)2+(y.Lθ.sinθ)2)+12Imθ.2+12Iwφ ˙wr2(28)

Uwl(q,q.)=12mw((x.+Lθ.cosθ)2+(y.+Lθ.sinθ)2)+12Imθ.2+12Iwφ ˙wl2 (29)

After development and with considering that the Lagrangien is equal to the kinetic energy:

L(q,q.)=U(q,q.)

The Lagrangien equation is then given by:

L(q,q.)=12m(x.2+y.2)+mcd(y.cosθx.sinθ)θ.+12Iw(φ ˙wr2+φ ˙wl2)+122 (30)

Where,

m= m c +2 m w  : MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeyBaiabg2da9iaab2gapaWaaSbaaSqaa8qacaqGJbaapaqabaGc peGaey4kaSIaaGOmaiaab2gapaWaaSbaaSqaa8qacaqG3baapaqaba GcpeGaaeiOaiaacQdaaaa@414C@ Is the total mass of the robot,

And I= I c + m c d 2 +2 I m +2 m w L 2  : MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeysaiabg2da9iaabMeapaWaaSbaaSqaa8qacaqGJbaapaqabaGc peGaey4kaSIaaeyBa8aadaWgaaWcbaWdbiaabogaa8aabeaak8qaca qGKbWdamaaCaaaleqabaWdbiaaikdaaaGccqGHRaWkcaaIYaGaaeys a8aadaWgaaWcbaWdbiaab2gaa8aabeaak8qacqGHRaWkcaaIYaGaae yBa8aadaWgaaWcbaWdbiaabEhaa8aabeaak8qacaqGmbWdamaaCaaa leqabaWdbiaaikdaaaGccaqGGcGaaiOoaaaa@4BD8@ is the total inertia of the robot.

Applying the Lagrangien derivative equation, different matrixes of the dynamic equation are given by:

M(q)=( m 0 m c dsinθ 0 0 0 m m c dcosθ 0 0 m c dsinθ m c dcosθ I 0 0 0 0 0 I r 0 0 0 0 0 I r ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaad2eacaGGOa GaamyCaiaacMcacqGH9aqpdaqadaqaauaabeqafuaaaaaabaGaamyB aaqaaiaaicdaaeaacqGHsislcaWGTbWaaSbaaSqaaiaadogaaeqaaO GaamizaiGacohacaGGPbGaaiOBaiabeI7aXbqaaiaaicdaaeaacaaI WaaabaGaaGimaaqaaiaad2gaaeaacqGHsislcaWGTbWaaSbaaSqaai aadogaaeqaaOGaamizaiGacogacaGGVbGaai4CaiabeI7aXbqaaiaa icdaaeaacaaIWaaabaGaeyOeI0IaamyBamaaBaaaleaacaWGJbaabe aakiaadsgaciGGZbGaaiyAaiaac6gacqaH4oqCaeaacqGHsislcaWG TbWaaSbaaSqaaiaadogaaeqaaOGaamizaiGacogacaGGVbGaai4Cai abeI7aXbqaaiaadMeaaeaacaaIWaaabaGaaGimaaqaaiaaicdaaeaa caaIWaaabaGaaGimaaqaaiaadMeadaWgaaWcbaGaamOCaaqabaaake aacaaIWaaabaGaaGimaaqaaiaaicdaaeaacaaIWaaabaGaaGimaaqa aiaadMeadaWgaaWcbaGaamOCaaqabaaaaaGccaGLOaGaayzkaaaaaa@70F7@ (31)

C(q,q.)=(00000     00000      mcdsinθmcdcosθ000      00000     00000) (32)

B( q )=( 0 0 0 1 0       0 0 0 0 1   ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeOqamaabmaapaqaa8qacaqGXbaacaGLOaGaayzkaaGaeyypa0Za aeWaa8aabaqbaeqabmqaaaqaa8qacaaIWaaapaqaa8qacaaIWaaapa qaauaabeqadeaaaeaapeGaaGimaaWdaeaapeGaaGymaaWdaeaapeGa aGimaaaaaaGaaeiOaiaabckacaqGGcGaaeiOaiaabckapaqbaeqabm qaaaqaa8qacaaIWaaapaqaa8qacaaIWaaapaqaauaabeqadeaaaeaa peGaaGimaaWdaeaapeGaaGimaaWdaeaapeGaaGymaaaaaaGaaeiOaa GaayjkaiaawMcaaaaa@4CA9@ (33)

τ=( τ r τ l ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeiXdiabg2da9maabmaapaqaauaabeqaceaaaeaapeGaaeiXd8aa daWgaaWcbaWdbiaabkhaa8aabeaaaOqaa8qacaqGepWdamaaBaaale aapeGaaeiBaaWdaeqaaaaaaOWdbiaawIcacaGLPaaaaaa@4094@ (34)

AT(q)q.=(sinθcosθ0cosθsinθLcosθsinθL    0r0    00r)(λ1λ2λ3λ4λ5)(35)

Where:

τ r  and  τ l   MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeiXd8aadaWgaaWcbaWdbiaabkhaa8aabeaak8qacaqGGcGaaeyy aiaab6gacaqGKbGaaeiOaiaabckacaqGepWdamaaBaaaleaapeGaae iBaaWdaeqaaOWdbiaabckaaaa@43D7@ Are torques control inputs of the robot.

Considering that the Lagrangien coefficients are equal to zero, the robot dynamic model is given by:

{(m+2Iwr2)v.mcdω2=1r(τr+τl)(2L2Iwr2+I)ω.+mcdωv=Lr(τrτl)(36)

Actuators dynamic modelling

In general cases, the driving system of mobile robots is based on an armature-controlled DC motors which are considered as servo actuators. These actuators train the two wheels and drive the mobile robot by providing torques control inputs.

The control inputs of the motors are the armatures voltages E(t) (Figure 2).

Figure 2 Architecture of a DC motor.

These following equations describe electrical and mechanical parts of the motor circuit:

  { E( t )=Ri( t )+L di( t ) dt +e( t ) with  e( t )= K e ω m τ m = I s d ω m ( t ) dt +f ω m ( t )+ K m i( t ) with  τ=N τ m MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qacaWGfbWaaeWaa8aabaWdbiaa dshaaiaawIcacaGLPaaacqGH9aqpcaWGsbGaamyAamaabmaapaqaa8 qacaWG0baacaGLOaGaayzkaaGaey4kaSIaamitamaalaaapaqaa8qa caWGKbGaamyAamaabmaapaqaa8qacaWG0baacaGLOaGaayzkaaaapa qaa8qacaWGKbGaamiDaaaacqGHRaWkcaWGLbWaaeWaa8aabaWdbiaa dshaaiaawIcacaGLPaaacaGGGcGaam4DaiaadMgacaWG0bGaamiAai aacckacaGGGcGaamyzamaabmaapaqaa8qacaWG0baacaGLOaGaayzk aaGaeyypa0Jaam4sa8aadaWgaaWcbaWdbiaadwgaa8aabeaak8qacq aHjpWDpaWaaSbaaSqaa8qacaWGTbaapaqabaaakeaapeGaeqiXdq3d amaaBaaaleaapeGaamyBaaWdaeqaaOWdbiabg2da9iaadMeapaWaaS baaSqaa8qacaWGZbaapaqabaGcpeWaaSaaa8aabaWdbiaadsgacqaH jpWDpaWaaSbaaSqaa8qacaWGTbaapaqabaGcpeWaaeWaa8aabaWdbi aadshaaiaawIcacaGLPaaaa8aabaWdbiaadsgacaWG0baaaiabgUca RiaadAgacqaHjpWDpaWaaSbaaSqaa8qacaWGTbaapaqabaGcpeWaae Waa8aabaWdbiaadshaaiaawIcacaGLPaaacqGHRaWkcaWGlbWdamaa BaaaleaapeGaamyBaaWdaeqaaOWdbiaadMgadaqadaWdaeaapeGaam iDaaGaayjkaiaawMcaaiaacckacaWG3bGaamyAaiaadshacaWGObGa aiiOaiaacckacqaHepaDcqGH9aqpcaWGobGaeqiXdq3damaaBaaale aapeGaamyBaaWdaeqaaaaaaOWdbiaawUhaaaaa@8AE7@ (37)

Omitting the inertia and the friction of the motor:

{ E( t )=Ri( t )+L di( t ) dt + K e ω m τ m = K t i( t )with τ= m MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Waaiqaa8aabaqbaeqabiqaaaqaa8qacaqGfbWaaeWaa8aabaWdbiaa bshaaiaawIcacaGLPaaacqGH9aqpcaqGsbGaaeyAamaabmaapaqaa8 qacaqG0baacaGLOaGaayzkaaGaey4kaSIaaeitamaalaaapaqaa8qa caqGKbGaaeyAamaabmaapaqaa8qacaqG0baacaGLOaGaayzkaaaapa qaa8qacaqGKbGaaeiDaaaacqGHRaWkcaqGlbWdamaaBaaaleaapeGa aeyzaaWdaeqaaOWdbiaabM8apaWaaSbaaSqaa8qacaqGTbaapaqaba aakeaapeGaaeiXd8aadaWgaaWcbaWdbiaab2gaa8aabeaak8qacqGH 9aqpcaqGlbWdamaaBaaaleaapeGaaeiDaaWdaeqaaOWdbiaabMgada qadaWdaeaapeGaaeiDaaGaayjkaiaawMcaaiaabEhacaqGPbGaaeiD aiaabIgacaqGGcGaaeiXdiabg2da9iaab6eacaqGepWdamaaBaaale aapeGaaeyBaaWdaeqaaaaaaOWdbiaawUhaaaaa@6382@ (38)

As motors are mechanically coupled to the wheels by the reducers, mechanical equations of motors are directly linked with those of the robot:

{ωmr=Nφ.wr  and ωml=Nφ.wl  τr=mr and τl=ml (39)

Consequently, for the right motor:

{Er(p)=(R+Lp)ir(p)+KeNφ.wr(p)τmr=Kmir(p)with τr=mr (40)

And for the left motor:

{El(p)=(R+Lp)il(p)+KeNφ.wl(p)τml=Kmil(p)with τl=ml (41)

As a result, the obtained equations are the dynamic model of the two motors:

{1(R+Lp)(ErKeNφ.wr)=ir and τr=mr1(R+Lp)(ElKeNφ.wl)=il and τl=ml     (42)

The dynamic equations of the mobile robot and those of the actuators are given by this scheme: (Figure 3)

The closed loop feedback scheme in which angular velocities references of the right and the left wheels are considered as inputs, is given by the Figure 4.

Figure 3 Open loop dynamical robot system developed on SIMULINK software.

Figure 4 Closed loop scheme of dynamical robot system developed on SIMULINK software.

Mobile robot control design

Different control strategies are used and designed for both speed control of DC motors and trajectory tracking for mobile robots.

In this section, the trajectory tracking and the speed control problems for the mobile robot are presented even in the presence of load torques Tlr and Tll which are applied to test the system’s control performances. This applied load torques Tlr and Tll are used to model the obstacles in the form of holes and the stones in the hostile environment in which the robot is evolving. The problematic is that the robot moves in a hostile environment full of holes and stones and must behave in an autonomous manner. The control objective is to design a controller which can adapt the mobile robot behavior to the application of different load torques. 

In fact, it is important to know that the couple: load torque and robot behavior must be correspondent and must respect some rules:

  1. If T lr ( respectively T ll )< τ r ( respectively τ l ) MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeiva8aadaWgaaWcbaWdbiaabYgacaqGYbaapaqabaGcpeWaaeWa a8aabaWdbiaabkhacaqGLbGaae4CaiaabchacaqGLbGaae4yaiaabs hacaqGPbGaaeODaiaabwgacaqGSbGaaeyEaiaabckacaqGubWdamaa BaaaleaapeGaaeiBaiaabYgaa8aabeaaaOWdbiaawIcacaGLPaaacq GH8aapcaqGepWdamaaBaaaleaapeGaaeOCaaWdaeqaaOWdbmaabmaa paqaa8qacaqGYbGaaeyzaiaabohacaqGWbGaaeyzaiaabogacaqG0b GaaeyAaiaabAhacaqGLbGaaeiBaiaabMhacaqGGcGaaeiXd8aadaWg aaWcbaWdbiaabYgaa8aabeaaaOWdbiaawIcacaGLPaaaaaa@6006@ that is the load torques are less than the robot wheels torques, so the robot can overcome the obstacles (soft holes or stones), and then should evolve normally in its trajectory without changing its behaviour;
  2. If T lr ( respectively T ll )> τ r ( respectively τ l ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeiva8aadaWgaaWcbaWdbiaabYgacaqGYbaapaqabaGcpeWaaeWa a8aabaWdbiaabkhacaqGLbGaae4CaiaabchacaqGLbGaae4yaiaabs hacaqGPbGaaeODaiaabwgacaqGSbGaaeyEaiaabckacaqGubWdamaa BaaaleaapeGaaeiBaiaabYgaa8aabeaaaOWdbiaawIcacaGLPaaacq GH+aGpcaqGepWdamaaBaaaleaapeGaaeOCaaWdaeqaaOWdbmaabmaa paqaa8qacaqGYbGaaeyzaiaabohacaqGWbGaaeyzaiaabogacaqG0b GaaeyAaiaabAhacaqGLbGaaeiBaiaabMhacaqGGcGaaeiXd8aadaWg aaWcbaWdbiaabYgaa8aabeaaaOWdbiaawIcacaGLPaaaaaa@600B@ that is the load torques are higher than the robot wheels torques, thus the robot should try to overcome the obstacles ( medium holes or stones), brake and then continue its trajectory normally ;
  3. If T lr ( respectively T ll )>> τ r ( respectively τ l ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeiva8aadaWgaaWcbaWdbiaabYgacaqGYbaapaqabaGcpeWaaeWa a8aabaWdbiaabkhacaqGLbGaae4CaiaabchacaqGLbGaae4yaiaabs hacaqGPbGaaeODaiaabwgacaqGSbGaaeyEaiaabckacaqGubWdamaa BaaaleaapeGaaeiBaiaabYgaa8aabeaaaOWdbiaawIcacaGLPaaacq GH+aGpcqGH+aGpcaqGepWdamaaBaaaleaapeGaaeOCaaWdaeqaaOWd bmaabmaapaqaa8qacaqGYbGaaeyzaiaabohacaqGWbGaaeyzaiaabo gacaqG0bGaaeyAaiaabAhacaqGLbGaaeiBaiaabMhacaqGGcGaaeiX d8aadaWgaaWcbaWdbiaabYgaa8aabeaaaOWdbiaawIcacaGLPaaaaa a@6113@ that is the load torques are extremely higher than the robot wheels torques, hence the obstacles are quite difficult to overcome (very deep holes or big stones), then the robot should STOP to avoid motors damages, bypass and encounter the obstacles ;
  4. If T Ir > T Il MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiaadsfadaWgaa WcbaGaamysaiaadkhaaeqaaOGaeyOpa4JaamivamaaBaaaleaacaWG jbGaamiBaaqabaaaaa@3DAE@ that is the left load torque is less than the right load torque ( left obstacle is less important than the right one), then the robot should turn to the LEFT;
  5. If T lr < T ll MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeiva8aadaWgaaWcbaWdbiaabYgacaqGYbaapaqabaGcpeGaeyip aWJaaeiva8aadaWgaaWcbaWdbiaabYgacaqGSbaapaqabaaaaa@3E71@ that is the left load torque is higher than the right load torque (left obstacle is more important than the right one), then the robot should turn to the RIGHT.

Our case study is based on two controller strategies: a classical PID controller (CPIDC) and a Real Time Dynamic PID optimized Neural Networks Controller (RTDPID). These two controllers were implemented on Matlab/Simulink environment and a comparative study is presented to demonstrate the effectiveness of the proposed smart control strategy based on neural networks.

Classical PID controller (CPIDC)

PID controller is a standard control feedback loop method commonly used in industry. The essential mission of PID controllers consists in reducing to zero the error between output or measured process variable and a desired set point by calculating and then outputting a corrective action that can adjust the process accordingly.

Since PID controllers are well recognized for achieving desired behavior, the control design should attend the goals which are: speed control and trajectory tracking even with the presence of load torques Tlr and Tll and without affecting the overall system stability.

In this section, a closed loop feedback algorithm based on PID controller has been developed for precise position, speed control, and especially for testing the behaviour of mobile robot regarding load torque application.

PID structure consists of proportional, integral and derivative actions which are implemented in parallel form. The derivative term is used to reduce the overshoot by improving the transient response and stabilizing the overall system behaviour, and the Integral term is used to reduce steady state error in a control system.

This classical PID controller is represented with its well known continuous transfer function as follows:

C( p )= K p + K I p + K D p MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaam4qamaabmaapaqaa8qacaWGWbaacaGLOaGaayzkaaGaeyypa0Ja am4sa8aadaWgaaWcbaWdbiaadchaa8aabeaak8qacqGHRaWkdaWcaa WdaeaapeGaam4sa8aadaWgaaWcbaWdbiaadMeaa8aabeaaaOqaa8qa caWGWbaaaiabgUcaRiaadUeapaWaaSbaaSqaa8qacaWGebaapaqaba GcpeGaamiCaaaa@45CF@ (43)

Where kP, kI and kD refer to proportional, integral and derivative gain constants respectively.

The tuning of these coefficients is done based on the Ziegler and Nichols approach considering the closed loop scheme. The main advantage of this method is its simplicity, and it consists in setting the integral KI gain to the maximum, and derivative KD gain to zero.

However, the proportional KP gain is then increased until it reaches the critical gain Kosc, and the system oscillates continuously among constant amplitude oscillations with Tosc period. Then Kosc and Tosc are used to set the PID gains based on mathematical approximations.21

The simulation leads to: (Figure 5)

Figure 5 Response of Ziegler and Nichols approach.

Where: Tosc=0.04s with Kosc=15.

By tuning these three constants, the PID controller algorithm can provide control action designed to let velocities of the wheels and the robot following desired specific process requirements, and mainly to test the behaviour of mobile robot against load torque application.

The closed loop PID control scheme is represented as: Figure 6

Figure 6 Closed loop PID control scheme.

The inputs of the closed loop system are references of linear and angular velocities of the robot V_ref and W_ref MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeOvaiaac+facaqGYbGaaeyzaiaabAgacaqGGcGaaeyyaiaab6ga caqGKbGaaeiOaiaabEfacaGGFbGaaeOCaiaabwgacaqGMbaaaa@4536@ , and the outputs are linear and angular velocities of the robot V and W MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeOvaiaabckacaqGHbGaaeOBaiaabsgacaqGGcGaae4vaaaa@3DE4@ , angular velocities of the wheels φ ˙ wr  and  φ ˙ wl MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiqbeA8aQzaaca WaaSbaaSqaaiaadEhacaWGYbaabeaakabaaaaaaaaapeGaaiiOaiaa dggacaWGUbGaamizaiaacckacuaHgpGAgaGaamaaBaaaleaacaWG3b GaamiBaaqabaaaaa@4406@ , x, y positions and the angle θ MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaiabeI7aXbaa@38C4@ .

Real time dynamic PID optimized neural networks controller (RTDPID)

In this section, the main idea is to optimize PID controller coefficients with the use of neural networks method.

Neural network architecture: The neural network utilised is a multi-layer network with the most popular training method, which is the back-propagation algorithm. Its structure is composed of three layers: the first one is the intput layer, the second is the hidden layer and the third is the output layer.

The first layer is constituted of four inputs which are the two errors between angular velocities of the wheels φ. wr andφ.wl   and their referencesand the two armature voltages of the two motors, the second layer is composed of eighteen hidden neurons with “tansigmoid” activation functions and the third layer have three outputs “purelin” neuron which are the coefficients of the PID controller kP, kI and kD. So, for this application, the neural network is expected to provide the optimal PID coefficients for the mobile robot control behaviour against some load torques.

Learning phase: The back-propagation algorithm trains the neural network. In a typical back-propagation training session, the supervisor presents input data to the network and compares the network’s actual output Op to the target (or desired) output Tp. The basis of this comparison is the adjustment of weights wij and biases bij in order to reduce the value of a certain criterion: the energy function E represented by this equation:

E= 1 2 ( T p O p ) 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeyraiabg2da9maalaaapaqaa8qacaaIXaaapaqaa8qacaaIYaaa amaabmaapaqaa8qacaqGubWdamaaBaaaleaapeGaaeiCaaWdaeqaaO WdbiabgkHiTiaab+eapaWaaSbaaSqaa8qacaqGWbaapaqabaaak8qa caGLOaGaayzkaaWdamaaCaaaleqabaWdbiaaikdaaaaaaa@42D6@ (44)

This difference is used to change the connection weights between neurons in the network as:

Δω j ( t+1 )=η( E ω j )+ αΔω j ( t ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeiLdiaabM8apaWaaSbaaSqaa8qacaqGQbaapaqabaGcpeWaaeWa a8aabaWdbiaabshacqGHRaWkcaaIXaaacaGLOaGaayzkaaGaeyypa0 Jaae4Tdmaabmaapaqaa8qacqGHsisldaWcaaWdaeaapeGaeyOaIyRa aeyraaWdaeaapeGaeyOaIyRaaeyYd8aadaWgaaWcbaWdbiaabQgaa8 aabeaaaaaak8qacaGLOaGaayzkaaGaey4kaSIaaeySdiaabs5acaqG jpWdamaaBaaaleaapeGaaeOAaaWdaeqaaOWdbmaabmaapaqaa8qaca qG0baacaGLOaGaayzkaaaaaa@5321@ (45)

By this way, the weights are adjusted in a gradient descent manner, which means the minimization of the error between the expected output and the actual output for a particular input.

For training purpose and tests, some data sets were created from the closed loop feedback scheme describing the mobile robot desired behavior against load torque application.

Closed loop real time dynamic PID optimized neural networks controller: Figure 7 shows the proposed strategy of mobile robot control. It is a task of replacing both classical PID controllers with one Real Time Dynamic PID optimized Neural Networks Controller. This neural network is asked to learn information about a data set, in order to compute a number of weights that best allow the controller to track the given input/output data, in order to provide PID controller with the optimal values of its coefficients {kP, kI, kD} corresponding to the desired mobile robot behavior.

Figure 7 PID optimized Neural Networks controller scheme.

Once the interconnection weights and the biaises are adjusted according to the desired output, these neural models are incorporated in the control loop of the overall controlled system, and are used as one controller providing the inverter with the appropriate voltage vector.

The neural networks utilised are the same as the one described in the previous section. However, its structure is quite different.

Simulation results

The training design of the PID and the neural optimized PID controllers are achieved with the environment of Matlab/Simulink and a comparative study is carried out in a hostile environment with respect to various disturbances that can be holes and stones modeled by different load torques. The controlled robot must be autonomous for the decision making: it can decelerate and then continue its trajectory or stop depending on the size of the obstacles, thus avoiding the damage of the engine, or change its trajectory if needed.

The table below resumes the applied load torques and the desired behavior of the mobile robot with considering that the motor torque maximum is 25N.m (Table 1).

Situation

Desired behaviour

Interval of Load torques (Nm)

Load torque<Motor torque

Continue moving

[1     25]

Load torque>Motor  torque

Braking and speed compensation

[26   39]

Load torque>>Motor  torque

STOP moving to protect the engine

[40   55]

Left Load torque>Right Load torque

T lr > T ll MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamiva8aadaWgaaWcbaWdbiaadYgacaWGYbaapaqabaGcpeGaeyOp a4Jaamiva8aadaWgaaWcbaWdbiaadYgacaWGSbaapaqabaaaaa@3E81@  

Turn to the LEFT

52>45

Left Load torque<Right Load torque

T lr < T ll MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamiva8aadaWgaaWcbaWdbiaadYgacaWGYbaapaqabaGcpeGaeyip aWJaamiva8aadaWgaaWcbaWdbiaadYgacaWGSbaapaqabaaaaa@3E7D@   

Turn to the RIGHT.

30<50

Table 1 Desired behaviour versus load torques

The control strategy, as follows, consists of applying:

  1. A linear velocity reference V_ref=1m/s MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape GaaeOvaiaac+facaqGYbGaaeyzaiaabAgacqGH9aqpcaaIXaGaamyB aiaac+cacaWGZbaaaa@400F@ ;
  2. An angular velocity reference W_ref=0.5rd/s MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaam4vaiaac+facaWGYbGaamyzaiaadAgacqGH9aqpcaaIWaGaaiOl aiaaiwdacaWGYbGaamizaiaac+cacaWGZbaaaa@4276@ ;
  3. A load torque reference as follows: (Figure 8)

The following figures represent results of both training control lows with different cases studies.

Figure 8 Load Torque Reference.

1st case study: Load torque<Motor torque: (20 N.m)

Figure 9 Simulation results of PID and NN Controllers: (a-b) Right and Left Wheels Velocities, (c-d) Linear and Angular Velocities.

2nd case study: Load torque>Motor torque: (35 N.m)

Figure 10 Simulation results of PID and NN Controllers: (a-b) Right and Left Wheels Velocities, (c-d) Linear and Angular Velocities.

3rd case study: Load torque>>Motor torque (53 N.m)

Figure 11 Simulation results of PID and NN Controllers: (a-b) Right and Left Wheels Velocities, (c-d) Linear and Angular Velocities.

Figure 12 Circular Trajectories: (a) PID Controller, (b) NN Controller

4th case study: Right Load torque > Left Load torque T lr ( 52 Nm )> T ll ( 45 Nm ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaamiva8aadaWgaaWcbaWdbiaadYgacaWGYbaapaqabaGcpeWaaeWa a8aabaWdbiaaiwdacaaIYaGaaiiOaiaad6eacaWGTbaacaGLOaGaay zkaaGaeyOpa4Jaamiva8aadaWgaaWcbaWdbiaadYgacaWGSbaapaqa baGcpeWaaeWaa8aabaWdbiaaisdacaaI1aGaaiiOaiaad6eacaWGTb aacaGLOaGaayzkaaaaaa@4AB5@

(c-d) Linear and Angular Velocities.

Figure 13 Simulation results of PID and NN Controllers: (a-b) Right and Left Wheels Velocities, (c-d) Linear and Angular Velocities.

5th case study: Right Load torque < Left Load torque T lr ( 30 Nm )< T ll ( 50 Nm )  MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqkY=Mj0xXdbba91rFfpec8Eeeu0xXdbba9frFj0=OqFf ea0dXdd9vqaq=JfrVkFHe9pgea0dXdar=Jb9hs0dXdbPYxe9vr0=vr 0=vqpWqaaeaabiGaciaacaqabeaadaqaaqaaaOqaaabaaaaaaaaape Gaaeiva8aadaWgaaWcbaWdbiaabYgacaqGYbaapaqabaGcpeWaaeWa a8aabaWdbiaaiodacaaIWaGaaeiOaiaab6eacaqGTbaacaGLOaGaay zkaaGaeyipaWJaaeiva8aadaWgaaWcbaWdbiaabYgacaqGSbaapaqa baGcpeWaaeWaa8aabaWdbiaaiwdacaaIWaGaaeiOaiaab6eacaqGTb aacaGLOaGaayzkaaGaaiiOaaaa@4BB7@

Figure 14 Simulation results of PID and NN Controllers: (a-b) Right and Left Wheels Velocities, (c-d) Linear and Angular Velocities.

Discussion and analysis

In the previous section, four cases of desired behaviors were applied to our smart robot and the velocities responses were exposed taking into account the application of different load torques and the effects that they have on these responses. In all of the figures we have considered the responses of both right and left wheels velocities and both of linear and angular velocities. In fact, “Figure 9” represents the case of a load torque equal to 20 N.m that is less than the motors torques, we notice that the robot continue normally its navigation and he wasn’t affected by the load torque presence. In the second case, we have applied a load torque of 35 N.m that is higher than the motors torques we have noticed by “Fig.10” that speed responses evolves with low variations at the time of load torque application followed by speed compensation, in addition the static error is equal to zero which makes the system quite accurate. “Figure 11” presents the case of a load torque equal to 53 N.m which is much more important than the motors torques; we remark that behavior satisfy the specifications imposed in the table below and is able to achieve the goal. In fact, the robot stops for fear to damage the motors wheels that are training the robot. In the contrary, PID controllers allow bad responses in the way that the overall system became instable. Moreover, “Figure12” shows that the controlled PID robot is not able to follow circular trajectory that is the system is instable.  “Figure13” and “Figure14” presents two cases studies of applying different load torques on the left and right wheels; we noticed that the RTDPID optimized Neural Networks Controller permit better behavior. In fact, when applying a right wheel load torque superior to the left wheel load torque, the right wheel decelerate and the left wheel accelerate which forces the robot to turn to the right and vice versa. Basically, the RTDPID optimized Neural Networks Controller allows improved responses of the velocities while varying the intensities of obstacles by applying some load torques with different degrees. In fact, in the case of RTDPID optimized Neural Networks Controller, the robot can be qualified as a smart robot evolving in a hostile environment and this control strategy can be considered as a robust technique that obeys the desired and imposed specifications resumed in the table below. By the way, it might also be noted that the robot is smart, intelligent and answers quickly while keeping the system stable. In addition, the robot conserves its circular trajectory in the first and second control cases except the third case study in which the robot loses its stability. In the previous section, four cases of desired behaviors were applied to our smart robot and the velocities responses were exposed taking into account the application of different load torques and the effects that they have on these responses. In all of the figures we have considered the responses of both right and left wheels velocities and both of linear and angular velocities. In fact, “Figure 9” represents the case of a load torque equal to 20 N.m that is less than the motors torques, we notice that the robot continues its navigation normally and it is not affected by the load torque presence. In the second case, we have applied a load torque of 35 N.m that is higher than the motors torques we have noticed by “Figure 10” that speed responses evolves with low variations at the time of load torque application followed by speed compensation. In addition, the static error is equal to zero which makes the system quite accurate.

Figure 11” presents the case of a load torque equal to 53 N.m which is much more important than the motors torques; we remark that behavior satisfy the specifications imposed in the table below and is able to achieve the goal. In fact, the robot stops for fear it damages the motors wheels that are training the robot. On the contrary, PID controllers allow bad responses and as a result the overall system became instable. Moreover, “Figure 12” shows that the controlled PID robot is not able to follow circular trajectory meaning that the system is instable.  “Figure13” and “Figure 14” present two case studies of applying different load torques on the left and right wheels, we noticed that the RTDPID optimized Neural Networks Controller permit better behavior. In fact, when applying a right wheel load torque superior to the left wheel load torque, the right wheel decelerates and the left wheel accelerates which forces the robot to turn to the right and vice versa.  Basically, the RTDPID optimized Neural Networks Controller allows improved responses of the velocities while varying the intensities of obstacles by applying some load torques with different degrees. In fact, in the case of RTDPID optimized Neural Networks Controller, the robot can be qualified as a smart robot evolving in a hostile environment and this control strategy can be considered as a robust technique that obeys the desired and imposed specifications resumed in the table below. It might also be noted that the robot is smart, intelligent and answers quickly while keeping the system stable. In addition, the robot conserves its circular trajectory in the first and second control cases except the third case study in which the robot loses its stability (Figure 15).

Figure 15 Circular Trajectories: (a) PID Controller, (b) NN Controller.

Conclusion

In this paper, an RTDPID optimized Neural Networks Control scheme was proposed for a two-wheeled non-holonomic robot progressing in a hostile environment. It was shown that the controller is robust against different and intensive load torques and also guarantees stability and precision for static error performances. This control scheme resolves the problem of actuators damages when the robot meets undesirable obstacles. Simulation results of the mobile robot model were given to ensure the effectiveness of the controlled system.

Moreover, the RTDPID optimized neural network control technique gives better results when compared with the classical PID controller. This success is revealed by the behavior of the robot when tracking trajectories, avoiding obstacles and assuring both stability and accuracy.

Eventually, we can be assured that we have extended the aim of this work. In fact, when evolving in a hostile environment, the controlled robot is autonomous in decision making: it decelerates and then continues its trajectory, stops depending on the size of the obstacles, and as a result avoids damage to the motors, or turns to the left or to the right. It is also smart and able to protect itself against high load torques without affecting, neither its trajectory tracking nor its stability. In this context, the future scope of such smart robot is relatively very high. There are various applications which can be easily applied using other tools and technologies. The most important tool that can be considered is the use of deep learning instead of neural networks that are trainable “brains”. In fact, as robots are designed for a range of behaviors in a plethora of environments, Self-supervised learning approaches enable robots to generate their own training examples in order to improve performances. As future scope to our work, we can apply the self-supervised learning method to road and objects detection, identification of obstacles in rough terrain and in a 3D-scene analysis and modeling.

Funding

None.

Acknowledgments

None.

Conflicts of interest

The author declares there are no conflicts of interest.

References

  1. Yang H, Xiaozhao Fan, Peng Shi, et al. Nonlinear Control for Tracking and Obstacle Avoidance of a Wheeled Mobile Robot With Nonholonomic Constraint. IEEE Transactions on Control Systems Technology2016;24(2):741–746.
  2. Julio ENR, Ismael A, Juan GO, et al. Mobile robot path tracking using a robust PID controller. Control Engineering Practice. 2001;9(11):1209–1214.
  3. Ye J. Adaptive control of nonlinear PID-based analog neural networks for a nonholonomic mobile robot. Neurocomputing. 2008;71(7–9):1561–1565.
  4. Roy S,Nandy S, Ray R, et al. Robust Path Tracking Control of Nonholonomic Wheeled Mobile Robot: Experimental Validation. International Journal of Control, Automation and Systems. 2015;13(4):897–905.
  5. Kazuya S, Masahiro Y, Kazuhiro T. Robust Adaptive Trajectory Control of Nonholonomic Mobile Robot with Compensation of Input Uncertainty. Journal of System Design and Dynamics. 2012;6(3):273–286.
  6. Koubaa Y, Boukattaya M, Dammak T. Adaptive Sliding–Mode Dynamic Control For Path Tracking of Nonholonomic Wheeled Mobile Robot. J. Automation & Systems Engineering. 2015;9(2):119–131.
  7. Yang J, Ma R, Zhang Y, et al. Sliding Mode Control for Trajectory Tracking of Intelligent Vehicle. Physics Procedia. 2012;33:1160–1167.
  8. Rossomando FG, Soria C, Carelli R. Sliding Mode Neuro Adaptive Control in Trajectory Tracking for Mobile Robots. Journal of Intelligent & Robotic Systems. 2014;74(3–4):931–944.
  9. Park BS, Yoo SJ, Park JB, et al. A Simple Adaptive Control Approach for Trajectory Tracking of Electrically Driven Nonholonomic Mobile Robots. IEEE Transactions on Control System Technology. 2010;18(5):1199–1206.
  10. Fukao T, Nakagawa H, Adachi N. Adaptive tracking control of a nonholonomic mobile robot. IEEE Transactions on Robotics and Automation. 2000;16(5):609–615.
  11. Das T, Kar IN. Design and implementation of an adaptive fuzzy logic-based controller for wheeled mobile robots. IEEE Transactions on Control System Technology. 2006;14(3):501–510.
  12. Abadi DNM, Khooban MH. Design of optimal Mamdani-type fuzzy controller for nonholonomic wheeled mobile robots. Journal of King Saud University-Engineering Science. 2015;27(1):92–100.
  13. Abdessemed F, Benmahammed KH, Monacelli E. A fuzzy based reactive controller for a non-holonomic mobile robot. Robotics And Autonomous Systems. 2004;47(1):31–46.
  14. Khnissi K, Seddik C, Seddik H. Smart Navigation of Mobile Robot Using Neural Network Controller. 2018 International Conference onSmart Communications in Network Technologies (SaCoNet); 2018 october 27–31: Nigeria: IEEE; 2018.
  15. Ye J. Tracking control of a non-holonomic wheeled mobile robot using improved compound cosine function neural networks. International Journal of Control. 2014;88(2):364–373.
  16. Michel LF, Edgar NS, Alma YA, et al. Neural Control for a Differential Drive Wheeled Mobile Robot Integrating Stereo Vision Feedback.  Computacion y Sistemas. 2015;19(3):429–443.
  17. Salem FA. Dynamic and Kinematic Models and Control for Differential Drive Mobile Robots. International Journal of Current Engineering and Technology. 2013;3(2):253–256.
  18. Cerkala J, Jadlovska A. Nonholonomic mobile robot with differential chassis mathematical modelling and implementation in simulink with friction in Dynamics. Acta Electrotechnica et Informatica. 2015;15(3):3–8.
  19. Ito K, Kunisch K. Lagrange Multiplier Approach to Variational Problems and Applications. Advances in Design and Control. 2008.
  20. Dhaouadi R, Abu Hatab A. Dynamic Modelling of Differential-Drive Mobile Robots using Lagrange and Newton-Euler Methodologies: A Unified Framework. Advances in Robot and Automation. 2013;2(20):1–7.
  21. Astrom KJ, Hagglund T. Revisiting the Ziegler–Nichols step response method for PID control. Journal of Process Control. 2004;14:635–650.
Creative Commons Attribution License

©2019 Jabeur, et al. This is an open access article distributed under the terms of the, which permits unrestricted use, distribution, and build upon your work non-commercially.