Next Article in Journal
Analysis of EMC Factors on Electronic Devices Using PLS-SEM Method: A Case Study in Vietnam
Previous Article in Journal
Reliability of Scores Computed by a Commercial Virtual Reality System and Association with Indices of Cognitive Performance in Male Elite Rugby Players
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Design of a Saving-Energy Fuzzy Logic Controller for a Differential Drive Robot Based on an Optimization

1
Department of Missile and Gunship, Vietnam Naval Academy, Tran Phu 30, Nha Trang 650000, Vietnam
2
Department of Informatics and Cyber Operations, University of Defence, Kounicova 65, 662 10 Brno, Czech Republic
3
Department of Military Robotics, University of Defence, Kounicova 65, 662 10 Brno, Czech Republic
4
Department of Natural Sciences and Foreign Language, Vietnam Naval Academy, Tran Phu 30, Nha Trang 650000, Vietnam
*
Author to whom correspondence should be addressed.
Appl. Sci. 2023, 13(2), 997; https://doi.org/10.3390/app13020997
Submission received: 19 December 2022 / Revised: 5 January 2023 / Accepted: 9 January 2023 / Published: 11 January 2023
(This article belongs to the Section Robotics and Automation)

Abstract

:
In the problem of designing a Fuzzy Logic Controller (FLC) for robots in general and a Differential Drive Robot (DDR) in particular, the determination of the parameters of Membership Functions (MFs) and Fuzzy Rules (FRs) is a difficult, complicated, and time-consuming problem because this is mainly based on heuristics and the knowledge of experts. Therefore, this paper provides a new method to efficiently design an FLC for the DDR by using the Genetic Algorithm (GA). Here, the GA is used to generate and optimize both the parameters of MFs and the FRs according to the minimum kinetic energy loss criterion. For this purpose, a program is created in Google Colab® by using the Python language with the help of the “Pymoo” library to not only automatically generate all the suboptimal parameters of MFs and the suboptimal FRs but also the simulate and evaluate different used FLCs. This program is published as an open-source code so that all readers can browse, view, run, and modify the code themselves to design their FLC. The simulation results have shown that the designed FLC is much better than other used FLCs in terms of the minimum kinetic energy loss while other control performances are still good.

1. Introduction

In the field of mobile robots, the design of a motion controller is a crucial, fundamental, and important problem because the control law directly affects the efficiency of the application. So far, there have been many different motion control algorithms that have been successfully applied to mobile robots such as the PID control [1,2]; the Lyapunov-based control [3]; the adaptive and sliding mode control [4,5,6,7]; the fuzzy logic-based control [8,9,10]; the neural network-based control [11]; etc. In the mentioned algorithms, the fuzzy logic-based control is widely applied because it has a number of advantages such as requiring no complicated mathematical modeling and understating when designing a Fuzzy Logic Controller (FLC); it is easy to design and implement an FLC; the Fuzzy Logic (FL) control can be combined easily and deliver improved efficiency with conventional control systems; it has an ability to deal with nonlinearities and uncertainties; the fuzzy logic control algorithms are often robust; and, most of all, it is very efficient and easy to implement and optimize the fuzzy logic controller thanks to the adjustment of its membership function’s parameters and fuzzy rules.
Most FLCs are designed mainly based on the heuristics and the knowledge of experts as in [12,13], so the design is quite difficult, complicated, and time-consuming, while the performances of motion control are still poor. Thus, in order to reduce the complexity, as well as to shorten the design time and to cause the design to be less dependent on the heuristics and the knowledge of experts, there have been many studies using different optimization algorithms to design and improve the FLC for Wheeled Mobile Robots (WMRs) in general and the Differential Drive Robot (DDR) in particular [14]. Some well-known optimization algorithms have been used to design the FLC such as the Bat Algorithm (BA) [15,16]; the Bee Colony Optimization (BCO) [17]; the Particle Swarm Optimization (PSO) [9,17]; the Genetic Algorithm (GA) [8,9,10]; etc. Among those algorithms, the GA is more suitable for the optimization of the FLC because it offers a number of different benefits such as the GA considering a population of points, not a single point; the GA can work directly with strings of characters representing the parameter set; the GA uses probabilistic rules to guide their search not deterministic rules; the GA has a world-wide usage and user support; and it is easy to implement the GA in different program languages with a number of different support libraries.
Until now, most of the studies using GA to design FLC mainly focus on studying and using GA to design and optimize the parameters of MFs, while the Fuzzy Rules (FRs) are designed based on heuristics or experts, as in [10,18,19,20]. The other studies use the GA to design and optimize the FRs while the parameters of the MFs are fixed, as in [21,22,23]. There are very few studies that use GA to optimize both the parameters of the MFs and the FRs, as in [8,24]. However, these studies just aim to solve the problem of designing the FLC to control the robot to reach the destination and have not solved the problem of energy optimization, path optimization, travel time optimization, etc. Furthermore, almost no research has been published with any program or any open-source code for readers to reproduce, use, and verify.
From the above-mentioned problems, the authors develop and extend the previously published paper [10] with the following main objectives: (1) to provide a new method to efficiently generate both the suboptimal parameters of MFs and the suboptimal FRs for the fuzzy logic motion controller in order to drive the DDR from the starting point to the destination through several given waypoints according to the minimum kinetic energy loss criterion while the other performances of motion control are still good; (2) to provide a program created in Google Colab® with the Python language with the help of the “Pymoo” library in the form of the open-source code used to automatically generate all the suboptimal parameters of MFs, the suboptimal FRs, and simulate and evaluate different previously used FLCs so that readers can browse, view, run, and modify the code themselves to design their FLC.
The remainder of this paper is organized as follows: the problem statement is outlined in Section 2; the DDR mathematical models, the fuzzy logic, and the genetic algorithm are introduced in Section 3; in Section 4, the procedure of designing an FLC using GA is presented in detail; In Section 5, the simulation result collection and a discussion are presented to highlight the performance of the proposed method. The conclusions are stated in Section 6.

2. Problem Statement

2.1. Problem Description

Without a loss of generality, let us assume that the DDR has to move from the starting point to the given destination (the goal) through all the given waypoints (W1, W2, W3, and W4) to fulfill its task as shown in Figure 1. Thus, a controller is needed for the DDR to navigate the robot from starting point to the given destination effectively.
In this study, an FLC is designed based on the genetic algorithm to help the robot solve its task effectively. Specifically, the FLC is designed for the DDR to drive the robot from the starting point to the given destination through all the given waypoints with the minimum kinetic energy loss criterion while the other performances of the motion control are still good.
The relationship between the current robot position and the next waypoint is needed for the design process and it is indicated in Figure 2 [10].
In Figure 2, the distance (D) and the angle (Δθ) are calculated as follows [10]:
D = ( x W x Q ) 2 + ( y W y Q ) 2
Δ θ = θ Q θ W
tan θ W = y W y Q x W x Q

2.2. The Limitations and Constraining Conditions

To solve the problem described in Section 2.1 above, some simplifications, limitations, and constraining conditions have been created and listed below.
  • The robot moves on a horizontal plane.
  • The friction of the robot’s wheels with the floor is ignored.
  • The robot moves without any slipping, skidding, or sliding.
  • The center of mass of the robot coincides with the center of the axis between the right and the left wheels.

3. Preliminaries

In this section, the mathematic models of the DDR, the fuzzy logic control, and the genetic algorithm will be briefly reviewed.

3.1. Kinematic Model of the Differential Drive Robot

The kinematic model of the DDR describes how the robot’s position changes over time from a geometric point of view. The geometry of the DDR is needed to understand the kinematic model of the DDR, which is shown in Figure 3 and Table 1 [10].
From Figure 3 and referring to [10,25,26], the kinematic model of the DDR is expressed by Equation (4) as follows:
{ x ˙ = x Q = v cos θ y ˙ = y Q = v sin θ θ ˙ = ω

3.2. The Actuator Dynamic Model

In this study, two brushed DC motors are used to drive the wheels of the DDR. The actuator model is needed to find the relationship between the control signal and the input of the mechanical system. The electrical circuit and the free body diagram of the rotor of a brushed DC motor are depicted in Figure 4 [25].
An equation governing the mechanical dynamics of the DC motor is expressed in (5). The armature current that has its own dynamic equation is expressed in (6) as follows:
J θ ¨ m + B θ ˙ m = K t i a
L a d i a d t + R a i a = v a K e θ ˙ m
where J is the moment of inertia, θ m is the angle of rotation of the output shaft, τ m = K t i a is the mechanical torque developed in the motor rotor, K t is the torque constant, i a is the armature current, B is the damping coefficient, v a is the input voltage, K e is the back emf constant, R a stands for the armature resistance, L a is the armature inductance, and v e = K e θ ˙ m is the back emf [25].
Referring to [25], the relationship between the angular velocity ( θ ˙ m ) and the input voltage ( v a ) of the motor is expected in the form of a transfer function by Equation (7).
F ( s ) = θ ˙ m ( s ) v ˙ a ( s ) = K t ( R a + s L a ) ( J s + B ) + K t K e
Thus, the block diagram of the brushed DC motor can be expressed by Figure 5.

3.3. The Kinetic Energy of the Differential Drive Robot

The main energy losses of the DDR consist of the losses inside the motors, the kinetic energy loss, the losses due to the friction, the losses in the electronics, etc. [10,25,27]. However, in this study, for simplification, only the kinetic energy loss model is considered to design an energy-saving controller for the DDR.
When the DDR moves, it must accelerate, go with the constant velocity, and decelerate. Such actions of the robot will be related to its energy consumption. Specifically, part of the output power will be used to increase the kinetic energy and accelerate the robot. In theory, the kinetic energy will be transformed back during the deceleration phase, however, most of the transformed energy will be lost on heating [10,25]. The kinetic energy of the robot at any time is calculated by (8).
E kinetic = 1 2 { m [ v ( t ) ] 2 + I [ ω ( t ) ] 2 }
where m and I are the mass and the moment of inertia of the robot and v ( t ) and ω ( t ) are the linear velocity and angular velocity at time t of the robot, respectively.

3.4. The Fuzzy Logic Controller

The close loop schema of the DDR using the fuzzy logic controller can be depicted in Figure 6.
For the problem in this study, the Mamdani type is selected. The FLC used for the DDR in Figure 6 is structured as in Figure 7.
The FLC has two inputs that are D and two outputs that are ω r and ω l . These inputs and outputs are indicated in Figure 2 and listed in Table 1. According to the value of the inputs, the FLC will decide the value of the outputs. Specifically, first, the crisp input values ( D , Δ θ ) are converted into fuzzy values by the fuzzification. After that, a rule set in the form of IF-THEN is applied to obtain the fuzzy values of the outputs ( ω r , ω l ). Finally, the fuzzy values of the outputs are converted into crisp output values that are used to drive the DDR.

3.5. The Genetic Algorithm

As mentioned earlier, the GA has several outstanding benefits that are suitable for the design of an FLC. Therefore, in this study, the GA is selected to optimize both the parameters of the MFs and the FRs of the FLC for the DDR. The GA is based on the observations of the behavior of the nature [10,20]. Generally, a GA includes three operations, which are the selection, genetic operations, and replacement. For more details about the GA process, refer to [10,28]. In general, a GA cycle process is shown in Figure 8 [10].

4. The Design of the Fuzzy Logic Controller for the Differential Drive Robot

4.1. The Input and Output Variables for the Fuzzy Logic Controller

Several types of MFs can be used for FLC, such as the triangular MFs, the trapezoidal MFs, the Gaussian MFs, etc. However, in the WMR field, the triangular and trapezoidal MFs are applied more often than others [10]. In this study, to slightly simplify the problem, the triangular MFs are considered and each input/output are represented by only five MFs. The shape of each input and output MF is indicated in Figure 9. The name and notation of the input and output MFs are listed in Table 2 and Table 3.
There are 44 parameters (from base1 to base44) for two inputs and two outputs of the FLC. The first 11 parameters (from base1 to base11) define five MFs of input1 (D). The next 11 parameters (from base12 to base22) define five MFs of input2 (Δθ). Five MFs of output1 ( ω r ) are represented by parameters (from base23 to base33). Additionally, five MFs of output2 ( ω l ) are represented by parameters (from base34 to base44). The values of these parameters define the shape and size of all the MFs. The shape and size of the MFs directly affect the performance of the FLC, so it is important to find out a suboptimal set of all the input and output parameters (from base1 to base44).

4.2. The Fuzzy Rule Set for the Fuzzy Logic Controller

The FLC needs a rule set that allows it to derive the value of the fuzzy variable at the output from input variables. For the DDR, all the fuzzy linguistic variables of input1 (D) are combined with all the fuzzy linguistic variables of input2 (Δθ) and there is one fuzzy linguistic representation of the output as a result [20]. Such operations can be represented by Table 4 and Table 5.
The fuzzy linguistic representation of output1 (from Out_R1 to Out_R25) can be just one of VSR, SR, MBR, BR, or VBR and output2 (from Out_L1 to Out_L25) can be just one of VSL, SL, MBL, BL, or VBL. The selected one will directly affect the performance of the FLC, so the selection of the fuzzy output (VSR, SR, MBR, BR, or VBR) for output1 and (VSL, SL, MBL, BL, or VBL) for output2 are extremely important and need to be carried out.

4.3. The Optimization of the Fuzzy Logic Controller for the Differential Drive Robot

For the design of the FLC, determining the parameters of the MFs and the FRs is always a very difficult and extremely important problem because it directly affects the performance of the controller. Usually, these parameters and the FRs are determined based on the heuristics and knowledge of the experts, which leads to great difficulty and is time consuming. Therefore, in this study, both the parameters of MFs and the FRs will be determined completely automatically by using the GA according to the minimum kinetic energy loss criterion.

4.3.1. Encoding Gene for Chromosome

In this study, both MFs and the rule set are optimized, so the 44 parameters (from base1 to base44), 25 fuzzy linguistic representation of output1 (from Out_R1 to Out_R25), and 25 fuzzy linguistic representation of output2 (from Out_L1 to Out_L25) need to be encoded into 94 genes of each chromosome used in the GA. This means that each chromosome has 94 genes that represent all the parameters of the input, output MFs, and all fuzzy linguistic representations of output1 and output2. The structure of each chromosome (Ch) is expressed in Figure 10. The best chromosome, which is the result of the GA process, will define the suboptimal FLC for DDR.

4.3.2. Fitness Functions for the Genetic Algorithm

In the GA, an FF is defined to obtain the fitness value for each chromosome and to determine which one will be reproduced and brought into the next generation. Thus, with a specific chromosome, the FF returns a single numerical score, which is proportional to the ability of the chromosome (in this study, the score is a value of the robot’s kinetic energy).
As mentioned in Section 3.3 before, the kinetic energy of the DDR at any time is calculated by (8). However, when implementing the movement of the DDR in the software, the discrete time is used. Thus, the kinetic energy of the robot at time ( t i ) is calculated by Equation (9). The difference in kinetic energy between the two states is calculated by Equation (10). In addition, the kinetic energy loss is only for acceleration. Thus, the total kinetic energy loss at time ( t i ) and, therefore, the FF at any time is calculated by Equation (11) as follows:
E kinetic ( i ) = 1 2 m [ v ( t i ) ] 2 + 1 2 I [ ω ( t i ) ] 2
Δ E kinetic ( i ) = E kinetic ( i ) E kinetic ( i 1 )
F F ( i ) = E ( i ) = E ( i 1 ) + Δ E kinetic ( i ) ,   ( i f   Δ E kinetic ( i ) > 0 )
where E kinetic ( i ) is the kinetic energy of the robot at time ( t i ) ; Δ E kinetic ( i ) is the difference in kinetic energy between the two states; E ( i 1 ) is the total kinetic energy of the robot at time ( t i 1 ) ; and F F ( i ) = E ( i ) is the total kinetic energy of the robot at time ( t i ) .

4.3.3. The Optimization Process of the Fuzzy Logic Controller Using Genetic Algorithm

The optimization process of the FLC using the GA for the robot is shown in Figure 11.
As previously mentioned, all the parameters of the MFs and FRs are mapped to a chromosome, thus the FLC is created according to the chromosome. This chromosome represents all the parameters of the MFs and FRs, so its behavior can be tested by a simulation process. The results of the simulation are transformed into a fitness value. Such a process of mapping from the proposed solution to the FF result allows for the use of optimization methods. Therefore, it is expected that the same mapping applied to the suboptimal solution will provide the wanted FLC. The tuning process using the GA in Figure 11 is executed by the flow chart of the GA, which is shown in Figure 12 [10].
The full optimization process of the FLC using the GA is implemented and programmed in Google Colab® using the Python language with the help of the Pymoo library to obtain the best chromosome. This means that the suboptimal parameters of the MFs and FRs are found and, thus, the suboptimal FLC is designed.
Pymoo is a multi-objective optimization framework in Python. It serves to solve the problems of practical needs, such as the parallelization of function evaluations, the methods to visualize low- and high-dimensional spaces, and, especially, having tools for multi-criteria decision-making. For more details about Pymoo, refer to [29]; and readers should visit: https://pymoo.org (accessed on 14 November 2022) to learn how to optimize the code, what the GA settings are, and what integration with Pymoo looks like.

5. The Simulation Results and Discussion

In this section, the optimization process is implemented using a simulation program to find the suboptimal parameters of the MFs and FRs for the FLC in order to control the DDR to move to the goal through all the given optimal waypoints sequentially with a minimum of the kinetic energy loss.

5.1. Simulation Setup

5.1.1. The Main Parameters of the Robot

The robot’s parameters used for this simulation are from the parameters of a real DDR. Some of them are provided by the manufacturer and the other parameters are identified and estimated by the tool in MATLAB-Simulink®. The main parameters of the DDR used to simulate in this study are listed in Table 6.

5.1.2. The Parameters of the Waypoints

First, a zigzag path is used as a standard complex path for the optimization process of the FLC. Then, several popular defined paths will be used to test the robot motion control by using suboptimal FLC that have been found in the optimization process. These paths are defined by the several given waypoints in a unit of a meter as listed in Table 7.

5.1.3. Intervals of the Optimization Problem Variables

All the variables of inputs and outputs in this study need to be bounded according to the real robot’s parameters for the optimization process. This optimization problem works with the distance (D), angle ( Δ θ ) , and the wheel’s angular velocities ( ω r , ω l ) . The interval of each variable is selected based on the robot parameters, the path, the environment, etc. So, based on the parameters of the DDR and the paths used in the experiments of this study, the intervals of the input and output variables used for optimization problem are selected and listed in Table 8.
Therefore, the optimization parameters of input1 MFs (from base1 to base11) will be in the range [from 0 to 10] m. The optimization parameters of input2 MFs (from base12 to base22) will be in the range [from −π to π] rad. The optimization parameters of output1 MFs and output2 MFs (from base23 to base44) will be in the range [from 0 to 30] rad·s−1. In addition, for the optimization the FRs, the values of the genes represent the outputs (from Out_R1 to Out_R25) and (from Out_L1 to Out_L25) will be selected in the range [from 0.0 to 1.0]. The value of these genes including (from Out_R1 to Out_R25) and (from Out_L1 to Out_L25) will define the notation of each output (VSR/VSL, SR/SL, MBR/MBL, BR/BL, and VBR/VBL) as in Table 9.

5.1.4. Genetic Algorithm Setup

In this study, the Python language has been chosen to implement the optimization process of the FLC by using the GA. For the Python language, there is the Pymoo library that has already implemented a number of optimization algorithms, thus the GA will be implemented in Google Colab® with the help of the Pymoo library so that the suboptimal FLC can be found. For the optimization of the FLC, the GA was implemented in the Pymoo library with the size of the population set to 50 chromosomes and the generation count was set to 200. The size of the population and the number of the generation have been found as a good trade-off between the fast optimization process and the behavior of the resulting FLC.

5.2. Optimization Process Results

After running the optimization process program, the convergence of the fitness value over generations, the suboptimal MFs and suboptimal FRs when optimizing both MFs and FRs are found as listed in Table 10, Table 11, Table 12 and Table 13 and shown in Figure 13 and Figure 14.

5.3. Simulation Results

In order to evaluate the effectiveness of the “Optimal_MFs_FRs_FLC”, in which both the MFs and the FRs are optimized by the optimization process, two motion FLCs are selected and implemented to compare them with the “Optimal_MFs_FRs_FLC”. Two motion FLCs are the “Thoa controller” and the “GA_FLC controller” in [10]. In this study, the “Thoa controller” is called “Expert_FLC” and the “GA_FLC controller” is called “Optimal_MFs_FLC”. The “Expert_FLC” is designed by an expert. The MFs and the FRs of the “Expert_FLC” are designed based on the heuristics and knowledge of an expert. For the “Optimal_MFs_FLC”, only its MFs are optimized, while its FRs are designed by an expert. For more details refer to [10,13]. The main simulation results are shown in Figure 15, Figure 16, Figure 17, Figure 18 and Figure 19 and listed in Table 14, Table 15, Table 16, Table 17 and Table 18.

5.4. Discussion

5.4.1. The Robot Tracks the Zigzag Path

The zigzag path is a popular and complex path that is selected for the optimization process in order to find both the suboptimal MFs and the suboptimal FRs for the “Optimal_MFs_FRs_FLC” according to the minimum kinetic energy loss criterion. Figure 13 shows the value of the FF (kinetic energy loss). In this case, the value of the FF is rapidly reduced during the optimization process (from the 1st generation to the 50th generation). Then, the value of this FF is slightly decreased from the 51st generation to the 115th generation. From the 116th generation onwards, the value of the FF converges to E = 0.197255 J and remains at this value. This optimization process is based on random behavior and has been executed repeatedly, so it can be concluded that the FF in the optimization process has converged and reached a stable suboptimal value.
The suboptimal MFs and the suboptimal FRs of the “Optimal_MFs_FRs_FLC” are shown in Table 10, Table 11, Table 12 and Table 13 and Figure 14. These are the main results of the optimization process. Using the “Optimal_MFs_FRs_FLC”, the “Expert_FLC”, and the “Optimal_MFs_FLC” to drive the DDR, all the simulation results are shown in Figure 15, Figure 16, Figure 17, Figure 18 and Figure 19 and in Table 14, Table 15, Table 16, Table 17 and Table 18. Figure 15 and Table 14 have served as a base for a comparison between the “Optimal_MFs_FRs_FLC” and the other used controllers. Specifically, when the DDR is controlled by the “Optimal_MFs_FRs_FLC” to track the zigzag path, the kinetic energy loss of the robot (E = 0.197255 J) is much lower than the kinetic energy loss of the robot controlled by the other used controllers (for the “Expert_FLC”, E = 1.575194 J; and for the “Optimal_MFs_FLC”, E = 0.720139 J). In this case, the “Optimal_MFs_FRs_FLC” has saved 698.56% kinetic energy loss while the travel distance in this case is just a bit bigger (3.11%) in comparison with the case of using the “Expert_FLC” and the “Optimal_MFs_FRs_FLC” has saved 265.08% kinetic energy loss while the travel distance in this case is just a bit bigger (2.54%) in comparison with the case of using the “Optimal_MFs_FLC”.
The velocity of the robot when it is controlled by the “Optimal_MFs_FRs_FLC” is lower than the velocities of the robot when it is controlled by the other controllers. Therefore, in this case, the travel time of the robot is bigger than the travel times of the robot when it is controlled by the other controllers (see Figure 15b,c and Table 14). Specifically, the travel times are 28.33 s, 22.53 s, and 34.95 s when the robot is navigated by the “Expert_FLC”, the “Optimal_MFs_FLC”, and the “Optimal_MFs_FRs_FLC”, respectively. For the main purpose of minimizing kinetic energy loss, such a difference in speed and travel time is acceptable. Fortunately, this leads to the advantage of causing the robot to move more smoothly.
In addition, Figure 15c,d show that the linear velocity and the angular velocity of the DDR controlled by the “Expert_FLC” oscillated over time, which has led to the vibrations and jerks of the robot. However, these problems of the vibrations and jerks have been fixed quite well by the “Optimal_MFs_FLC” and the “Optimal_MFs_FRs_FLC”. When the “Optimal_MFs_FLC” and the “Optimal_MFs_FRs_FLC” are used, the linear velocity is almost unchanged, its value just slightly changes at each corner of the path. Moreover, Figure 15d clearly shows that the angular velocity of the robot controlled by the “Optimal_MFs_FRs_FLC” is always the smallest, especially at the time when the robot turns at each corner of the path. Therefore, the issues about the robot vibration and the robot jerk have been solved quite well by this controller.

5.4.2. The Robot Tracks the Other Typical Path

In order to investigate the operating ability of the “Optimal_MFs_FRs_FLC”, this controller, the “Expert_FLC”, and the “Optimal_MFs_FLC” are used to control the robot to move in several typical different paths including square path, sharp turn path, diamond-shaped path, and straightforward path (see Figure 16, Figure 17, Figure 18 and Figure 19 and Table 15, Table 16, Table 17 and Table 18).
Figure 16, Figure 17, Figure 18 and Figure 19 and Table 15, Table 16, Table 17 and Table 18 clearly indicate that the performances of the motion control are still very good when the robot is controlled by the “Optimal_MFs_FRs_FLC” compared to the “Expert_FLC” and the “Optimal_MFs_FLC” in all the cases of using the given paths. Specifically, a 408.98%, 286.49%, 257.09%, and 178.44% reduction in the kinetic energy loss was achieved using the proposed controller compared to the best of the used controllers when the DDR tracks the square path, the sharp turn path, the diamond-shaped path, and the straightforward path, respectively. Especially, the limitations of the other controllers such as the vibration and the jerk have been well solved by the “Optimal_MFs_FRs_FLC”. So, it can be also concluded that the “Optimal_MFs_FRs_FLC” is the best controller for the DDR on the different given paths.
As mentioned earlier, the main goal of this study is to design an FLC to drive the DDR from the starting point to the destination through all the given waypoints by the optimization process with the help of the GA based on minimizing the kinetic energy loss criterion. Thus, from all the analyses above, it could be concluded that the “Optimal_MFs_FRs_FLC” is the most suitable one in the used FLCs. In other words, the “Optimal_MFs_FRs_FLC” is much better than the others in terms of energy-saving while the other performances of motion control are still good.

6. Conclusions

The paper presents the DDR motion control. The content of the paper focuses on the problem of designing the fuzzy logic energy-saving motion controller for the DDR so that the robot can move to the given destination through all the given waypoints with the minimum kinetic energy loss and still ensure the other performances of the motion control. This study solves the difficulties in the problem of determining the parameters of MFs and the FRs when designing the FLC for DDR. Specifically, first, the zigzag path is used for the optimization process by using the GA based on the minimum energy consumption criterion to find out both the suboptimal MFs and the suboptimal FRs. Then, this suboptimal FLC is used to evaluate its performances of motion control when the DDR tracks the other popular paths. Finally, the “Optimal_MFs_FRs_FLC”, the “Optimal_MFs_FLC”, and the “Expert_FLC” are successfully implemented in Google Colab® by using the Python language to compare them with each other. The simulation results have shown that the “Optimal_MFs_FRs_FLC” is significantly better than the used controllers in terms of the minimum kinetic energy loss while the other performances of the motion control are still good.
The main contributions of this study are: (1) providing a new method to efficiently design an FLC by using the GA for the DDR. This method allows any user even a naïve user, to design their own effective FLC; (2) both the MFs and the FRs are automatically generated by the optimization process; (3) providing a program in Google Colab® by using the Python language, which serves as a tool to execute the optimization process, simulate and evaluate the several robot motion control algorithms. This program is an open-source code for so that the readers can browse, view, run, and modify the code themselves. The open-source codes are stored in the following link: https://colab.research.google.com/drive/1gIcl7ZUu4wAbekBebDa-RBonOQ3nsvh1?usp=sharing (accessed on 14 November 2022). In future work, the “Optimal_MFs_FRs_FLC”, the “Expert_FLC”, and the “Optimal_MFs_FLC” will be implemented on a real DDR to test and evaluate the performances of those controllers.

Author Contributions

Conceptualization, V.T.P.; methodology, V.T.P., A.S. and V.K.; software, V.T.P. and A.S.; validation, V.T.P., A.S., V.K. and T.S.N.; formal analysis, V.T.P., A.S., V.K. and T.S.N.; investigation, V.T.P. and A.S.; resources, A.S. and V.T.P.; data curation, V.T.P.; writing—original draft preparation, V.T.P. and T.S.N.; writing—review and editing, V.T.P. and T.S.N.; visualization, V.T.P., A.S. and T.S.N.; supervision, V.T.P.; project administration, V.T.P.; funding acquisition, A.S. and V.K. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by internal fund “DZRO Cyber forces and resources” of University of Defence, the Czech Republic.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The simulation as open-source code is linked to https://colab.research.google.com/drive/1gIcl7ZUu4wAbekBebDa-RBonOQ3nsvh1?usp=sharing (accessed on 14 November 2022).

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

List of Abbreviations
DDRDifferential Drive Robot
FFFitness Function
FLFuzzy Logic
FLCFuzzy Logic Controller
FRsFuzzy Rules
GAGenetic Algorithm
WMRWheeled Mobile Robot
List of Variables
v The linear velocity of the DDRm·s−1
v r The linear velocity of the right wheel m·s−1
v l The linear velocity of the left wheelm·s−1
θ The orientation of the DDRrad
ω The angular velocity of the DDRrad·s−1
ω r The angular velocity of the right wheelrad·s−1
ω l The angular velocity of the left wheel rad·s−1
r The radius of the right and the left wheelsm
b The distance between the right and the left wheelsm
m The total mass of the robotkg
I The total equivalent moment of inertia of the DDRkg·m2
K t The torque constant of the DC motorN·m·A−1
K e The back emf constant of the DC motorV·m−1·s−1
R a The electrical resistance of the DC motor Ω
L a The electrical inductance of the DC motorH
Δ θ The angle error between the current robot’s position and the next waypointrad
Δ D The distance error between the current robot’s position and the waypoint’s positionm

References

  1. Armah, S.; Yi, S.; Abu-Lebdeh, T. Implementation of autonomous navigation algorithms on two-wheeled ground mobile robot. Am. J. Eng. Appl. Sci. 2014, 7, 149–164. [Google Scholar] [CrossRef] [Green Version]
  2. Kumar, U.D.; Nisha, M.; Mathivanan, N. Tracking of a PID driven differential drive mobile robot. Int. J. Mechatron. Electr. Comput. Technol. 2018, 8, 3690–3704. [Google Scholar]
  3. Wang, Y.; Miao, Z.; Zhong, H.; Pan, Q. Simultaneous stabilization and tracking of nonholonomic mobile robots: A lyapunov-based approach. IEEE Trans. Control Syst. Technol. 2015, 4, 1440–1450. [Google Scholar] [CrossRef]
  4. Shuying, P.; Wuxi, S. Adaptive fuzzy output feedback control of a nonholonomic wheeled mobile robot. IEEE Access 2018, 6, 43414–43424. [Google Scholar]
  5. Cui, M. Observer-based adaptive tracking control of wheeled mobile robots with unknown slipping parameters. IEEE Access 2019, 7, 169646–169655. [Google Scholar] [CrossRef]
  6. Azza, E.; Sayed, B.I. Wheeled mobile robot trajectory tracking using sliding mode control. J. Comput. Sci. 2016, 12, 48–55. [Google Scholar]
  7. Yasmine, K.; Mohamed, B.; Tarak, D. Adaptive sliding-mode dynamic control for path tracking of nonholonomic wheeled mobile robot. J. Autom. Syst. Eng. 2015, 2, 119–131. [Google Scholar]
  8. Ran, Z.; Dong, H.L.; Hong, K.L. Mobile robot navigation using optimized fuzzy controller by genetic algorithm. Int. J. Fuzzy Log. Intell. Syst. 2015, 15, 12–19. [Google Scholar]
  9. Mohammed, F.; Mohammed, A.; Bencherif, M.A.; Habib, D.; Mohamad, M.A.R. Human expertise in mobile robot navigation. IEEE Access. J. 2017, 6, 1694–1705. [Google Scholar]
  10. Štefek, A.; Pham, V.T.; Krivánek, V.; Pham, K.L. Optimization of fuzzy logic controller used for a differential drive wheeled mobile robot. Appl. Sci. 2021, 11, 6023. [Google Scholar] [CrossRef]
  11. Yue, M.; Wang, L.; Ma, T. Neural network based terminal sliding mode control for WMRs affected by an augmented ground friction with slippage effect. IEEE/CAA J. Autom. Sin. 2017, 3, 498–506. [Google Scholar] [CrossRef]
  12. Ritesh, B.M. Motion control of wheeled mobile robots using fuzzy logic. Int. J. Recent Technol. Eng. 2013, 2, 89–93. [Google Scholar]
  13. Thoa, T.M.; Cosmin, C.; Keyser, D.R.; Trung, D.T.; Thich, V. MIMO fuzzy control for autonomous mobile robot. J. Autom. Control Eng. 2016, 4, 65–70. [Google Scholar]
  14. Mehdi, Z.; Ebrahim, A.; Mehdi, F. A Review on optimization of fuzzy controller parameters in robotic applications. IETE J. Res. 2020, 68, 4150–4159. [Google Scholar]
  15. Perez, J.; Valdez, F.; Castillo, O.; Melin, P.; Gonzalez, C.; Martinez, G. Interval type-2 fuzzy logic for dynamic parameter adaptation in the bat algorithm. Soft Comput. 2017, 3, 67–85. [Google Scholar] [CrossRef]
  16. Pérez, J.; Valdez, F.; Castillo, O. A New bat algorithm augmentation using fuzzy logic for dynamical parameter adaptation. In Mexican International Conference on Artificial Intelligence; Springer: Cham, Switzerland, 30 December 2015; pp. 33–43. [Google Scholar]
  17. Frumen, O.; Leticia, A.A.; Jonathan, P.; Camilo, C.; Fevrier, V.; Oscar, C. Comparative study of type-2 fuzzy particle swarm, bee colony and bat algorithms in optimization of fuzzy controllers. Algorithms. J. 2017, 10, 101. [Google Scholar]
  18. Ahmet, A.; Mehmet, K. Determination of fuzzy logic membership functions using genetic algorithms. Fuzzy Sets Syst. J. 2001, 118, 297–306. [Google Scholar]
  19. Mohammadian, M.; Stonier, R.J. Tuning and optimisation of membership functions of fuzzy logic controllers by genetic algorithms. In Proceedings of the 1994 3rd IEEE International Workshop on Robot and Human Communication, Nagoya, Japan, 18–20 July 1994; pp. 356–361. [Google Scholar]
  20. Stefek, A.; Frantis, P. Optimization of fuzzy logic based virtual pilot for wargaming. Mathematics 2021, 9, 3169. [Google Scholar] [CrossRef]
  21. Mucientes, M.; Moreno, D.L.; Bugarin, A.; Barro, S. Design of a fuzzy logic in mobile robotics using genetic algorithms. Appl. Soft Comput. 2007, 7, 540–546. [Google Scholar] [CrossRef]
  22. Cintra, M.E.; Camargo, H. Fuzzy rules generation using genetic algorithms with self-adaptive selection. In Proceedings of the 2007 IEEE International Conference on Information Reuse and Integration, Las Vegas, NV, USA, 13–15 August 2007; pp. 261–266. [Google Scholar]
  23. Kumarasamy, K.S. Single robot motion planning using fuzzy-genetic technique. Control Intell. Syst. J. 2010, 1, 1–8. [Google Scholar]
  24. Dilip, K.P.; Kalyanmoy, D.; Amitabha, G. A genetic-fuzzy approach for mobile robot navigation among moving obstacles. international J. Approx. Reason. 1999, 20, 145–172. [Google Scholar]
  25. Štefek, A.; Pham, V.T.; Krivánek, V.; Pham, K.L. Energy comparison of controllers used for a differential drive wheeled mobile robot. IEEE Access J. 2020, 8, 170915–170927. [Google Scholar] [CrossRef]
  26. Spyros, G.T. Introduction to Mobile Robot Control, 1st ed.; Elsevier: Amsterdam, The Netherlands, 2014; pp. 137–317. [Google Scholar]
  27. Mudasser, W.; Fernando, R.; Adel, E.S. Energy modeling of differential drive robots. In Proceedings of the IEEE SoutheastCon 2015, Fort Lauderdale, FL, USA, 9–12 April 2015; pp. 1–6. [Google Scholar]
  28. Zilouchian, A.; Jamshidi, M. Intelligent Control Systems Using Soft Computing Methodologies, 1st ed.; Ali, Z., Mo, J., Eds.; CRC Press: Boca Raton, FL, USA, 27 March 2001; pp. 211–234. ISBN 9780849318757. [Google Scholar]
  29. Blank, J.; Deb, K. Pymoo: Multi-Objective Optimization in Python. IEEE Access 2020, 8, 89497–89509. [Google Scholar] [CrossRef]
Figure 1. The moving task of the differential drive robot.
Figure 1. The moving task of the differential drive robot.
Applsci 13 00997 g001
Figure 2. The parameters of the robot and the next waypoint.
Figure 2. The parameters of the robot and the next waypoint.
Applsci 13 00997 g002
Figure 3. Geometry of a differential drive robot.
Figure 3. Geometry of a differential drive robot.
Applsci 13 00997 g003
Figure 4. A basic electrical circuit and free body diagram of a DC motor.
Figure 4. A basic electrical circuit and free body diagram of a DC motor.
Applsci 13 00997 g004
Figure 5. The block diagram of a brushed DC motor.
Figure 5. The block diagram of a brushed DC motor.
Applsci 13 00997 g005
Figure 6. The close loop schema of the DDR using the fuzzy logic controller.
Figure 6. The close loop schema of the DDR using the fuzzy logic controller.
Applsci 13 00997 g006
Figure 7. The fuzzy logic controller used for the differential drive robot.
Figure 7. The fuzzy logic controller used for the differential drive robot.
Applsci 13 00997 g007
Figure 8. The schema of the genetic algorithm cycle.
Figure 8. The schema of the genetic algorithm cycle.
Applsci 13 00997 g008
Figure 9. Representation of membership functions of each input and output.
Figure 9. Representation of membership functions of each input and output.
Applsci 13 00997 g009
Figure 10. Representation of each chromosome.
Figure 10. Representation of each chromosome.
Applsci 13 00997 g010
Figure 11. The optimization process of the fuzzy logic controller.
Figure 11. The optimization process of the fuzzy logic controller.
Applsci 13 00997 g011
Figure 12. The flow chart of the genetic algorithm process.
Figure 12. The flow chart of the genetic algorithm process.
Applsci 13 00997 g012
Figure 13. The convergence of the fitness value over generations.
Figure 13. The convergence of the fitness value over generations.
Applsci 13 00997 g013
Figure 14. The suboptimal membership functions.
Figure 14. The suboptimal membership functions.
Applsci 13 00997 g014aApplsci 13 00997 g014b
Figure 15. The simulation results in the case of using the zigzag path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Figure 15. The simulation results in the case of using the zigzag path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Applsci 13 00997 g015
Figure 16. The simulation results in the case of using the square path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Figure 16. The simulation results in the case of using the square path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Applsci 13 00997 g016
Figure 17. The simulation results in the case of using the sharp turn path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Figure 17. The simulation results in the case of using the sharp turn path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Applsci 13 00997 g017
Figure 18. The simulation results in the case of using the diamond-shaped path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Figure 18. The simulation results in the case of using the diamond-shaped path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Applsci 13 00997 g018
Figure 19. The simulation results in the case of using the straightforward path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Figure 19. The simulation results in the case of using the straightforward path. (a) The trajectory of the robot; (b) The robot’s travel distance over time; (c) The robot’s linear velocity over time; (d) The robot’s angular velocity over time; (e) The robot’s kinetic energy loss over time; and (f) The zoom of the robot’s kinetic energy loss over time.
Applsci 13 00997 g019
Table 1. The parameters of the differential drive robot.
Table 1. The parameters of the differential drive robot.
NoParameters (Notation)Unit
01The linear velocity of the DDR (v)m·s−1
02The orientation of the DDR (θ)rad
03The angular velocity of the right wheel ( ω r ) rad·s−1
04The angular velocity of the left wheel ( ω l ) rad·s−1
05The linear velocity of the right wheel ( v r ) m·s−1
06The linear velocity of the left wheel ( v l ) m·s−1
07The radius of the right and the left wheels (r)m
08The distance between the right and the left wheels (b)m
09The center of the axis between the right and the left wheels (Q)-
10The center of gravity of the DDR (G)-
11The distance between Q and G (a)m
Table 2. The input membership functions.
Table 2. The input membership functions.
Input 1: (D)Input 2: (Δθ)
Membership FunctionsNotationMembership FunctionsNotation
Very CloseVCBig NegativeBN
CloseCNegativeN
MediumMZeroZ
FarFPositiveP
Very FarVFBig PositiveBP
Table 3. The output membership functions.
Table 3. The output membership functions.
Output   1 :   ( ω r ) Output   1 :   ( ω l )
Membership FunctionsNotationMembership FunctionsNotation
Very Small RightVSRVery Small LeftVSL
Small RightSRSmall LeftSL
Medium Big RightMBRMedium Big LeftMBL
Big RightBRBig LeftBL
Very Big RightVBRVery Big LeftVBL
Table 4. The rules of the right wheel angular velocity.
Table 4. The rules of the right wheel angular velocity.
Δ θ BNNZPBP
Δ D
VCOut_R01Out_R02Out_R03Out_R04Out_R05
COut_R06Out_R07Out_R08Out_R09Out_R10
MOut_R11Out_R12Out_R13Out_R14Out_R15
FOut_R16Out_R17Out_R18Out_R19Out_R20
VFOut_R21Out_R22Out_R23Out_R24Out_R25
Table 5. The rules of the left wheel angular velocity.
Table 5. The rules of the left wheel angular velocity.
Δ θ BNNZPBP
Δ D
VCOut_L01Out_L02Out_L03Out_L04Out_L05
COut_L06Out_L07Out_L08Out_L09Out_L10
MOut_L11Out_L12Out_L13Out_L14Out_L15
FOut_L16Out_L17Out_L18Out_L19Out_L20
VFOut_L21Out_L22Out_L23Out_L24Out_L25
Table 6. The main parameters of the DDR used for simulation.
Table 6. The main parameters of the DDR used for simulation.
Parameters (Notation)Value
The mass of the robot (m)1.733 kg
The moment of inertia of the DDR (I)0.08 kg·m2
The torque constant ( K t ) 0.001 Nm/A
The back emf constant ( K e ) 0.03 V/m/s
The electrical resistance ( R a ) 0.7 Ω
The electrical inductance ( L a ) 0.01 H
The damping coefficient (B)0.004 N·m·s
The moment of inertia of the motor (J)0.037 kg·m2·s−2
The gear ratio of the DC motor (N)30
The distance between two drive wheels (2b)0.2 m
The drive wheel’s radius (r)0.0425 m
Table 7. Parameters of the paths used for simulation.
Table 7. Parameters of the paths used for simulation.
PathsWaypoints (x, y)
Starting Point1st Point2nd Point3rd PointGoal
Zigzag path(0, 0)(2, 0)(2, 2)(4, 2)(4, 4)
Square path(0, 0)(2, 0)(2, 2)(0, 2)(0, 0)
Sharp turn path(0, 0)(2, 0)(1, 2)--
Straightforward path(0, 0)(2, 1.5)(4, 3)--
Diamond-shape path(0, 0)(2, –1)(4, 0)(2, 1)(0, 0)
Table 8. The limit of the optimization problem variables.
Table 8. The limit of the optimization problem variables.
Optimization VariablesLow BoundHigh Bound
input1 (D)0 m10 m
input2 ( Δ θ ) −π radπ rad
output1 ( ω r ) 0 rad·s−1 30 rad·s−1
output2 ( ω l ) 0 rad·s−1 30 rad·s−1
Table 9. The mapping of genes into the notations of the output membership functions.
Table 9. The mapping of genes into the notations of the output membership functions.
Genes Represent Outputs ValueNotation of Output
From Out_R1/Out_L1 to Out_R25/Out_L25[0.0–0.2)VSR/VSL
From Out_R1/Out_L1 to Out_R25/Out_L25[0.2–0.4)SR/SL
From Out_R1/Out_L1 to Out_R25/Out_L25[0.4–0.6)MBR/MBL
From Out_R1/Out_L1 to Out_R25/Out_L25[0.6–0.8)BR/BL
From Out_R1/Out_L1 to Out_R25/Out_L25[0.8–1.0]VBR/VBL
Table 10. The founded suboptimal parameters of the input membership functions.
Table 10. The founded suboptimal parameters of the input membership functions.
The   Distance   Error   Δ D   ( m ) / The   Angle   Error   Δ θ   ( rad )
NameNotationRange of Value
Very Close/Big NegativeVC/BN[0.0, 0.0, 3.95]/[−π, −π, −1.72]
Close/NegativeC/N[2.93, 3.97, 4.55]/[−3.59, −1.57, 1.95]
Medium/ZeroM/Z[4.13, 4.77, 6.54]/[−0.16, 0.41, 2.40]
Far/PositiveF/P[7.30, 7.47, 15.79]/[−0.09, 1.56, 3.32]
Very Far/Big PositiveVF/BP[7.24, 10, 10]/[0.004, π, π]
Table 11. The founded suboptimal parameters of the output membership functions.
Table 11. The founded suboptimal parameters of the output membership functions.
The   ω r   ( rad / s ) / The   ω l   ( rad / s )
NameNotationRange of Value
Very Small Right/LeftVSR/VSL[0, 0, 8.94]/[0, 0, 9.32]
Small Right/LeftSR/SL[−9.15, 1.59, 14.57]/[6.40, 7.02, 7.80]
Medium Big Right/LeftMBR/MBL[13.97, 16.41, 18.07]/[15.40, 16.73, 17.53]
Big Right/LeftBR/BL[17.03, 17.10, 19.00]/[20.84, 27.36, 18.32]
Very Big Right/LeftVBR/VBL[16.55, 30, 30]/[19.59, 30, 30]
Table 12. The suboptimal rules for the right wheel angular velocity.
Table 12. The suboptimal rules for the right wheel angular velocity.
Δ θ BNNZPBP
Δ D
VCMBRVSRSRBRVSR
CVSRVSRVBRVBRVSR
MVSRSRSRVSRVSR
FMBRMBRBRVBRVSR
VFBRVBRVBRVSRVSR
Table 13. The suboptimal rules for the left wheel angular velocity.
Table 13. The suboptimal rules for the left wheel angular velocity.
Δ θ BNNZPBP
Δ D
VCMBLSLSLVSLVSL
CSLVSLMBLSLVSL
MSLMBLSLVBLBL
FBLBLBLVBLBL
VFVBLSLVBLBLBL
Table 14. The kinetic energy loss and the travel distance of the robot when the robot tracks the zigzag path by the different controllers.
Table 14. The kinetic energy loss and the travel distance of the robot when the robot tracks the zigzag path by the different controllers.
ControllersEnergy ConsumptionTravel DistanceTravel Time
E (J)E (%)s (m)s (%)Time(s)
Expert_FLC1.575194798.568.096951100.0028.33
Optimal_MFs_FLC0.720139365.088.142723100.5722.53
Optimal_MFs_FRs_FLC0.197255100.008.348827103.1134.95
Table 15. The kinetic energy loss and the travel distance of the robot when the robot tracks the square path by the different controllers.
Table 15. The kinetic energy loss and the travel distance of the robot when the robot tracks the square path by the different controllers.
ControllersEnergy ConsumptionTravel Distance
E (J)E (%)s (m)s (%)
Expert_FLC1.350298727.198.048057100.74
Optimal_MFs_FLC0.759424408.987.989019100.00
Optimal_MFs_FRs_FLC0.185687100.008.202735102.68
Table 16. The kinetic energy loss and the travel distance of the robot when the robot tracks the sharp turn path by the different controllers.
Table 16. The kinetic energy loss and the travel distance of the robot when the robot tracks the sharp turn path by the different controllers.
ControllersEnergy ConsumptionTravel Distance
E (J)E (%)s (m)s (%)
Expert_FLC0.781463568.374.279199100.83
Optimal_MFs_FLC0.393902286.494.243791100.00
Optimal_MFs_FRs_FLC0.137491100.004.430193104.39
Table 17. The kinetic energy loss and the travel distance of the robot when the robot tracks the diamond-shaped path by the different controllers.
Table 17. The kinetic energy loss and the travel distance of the robot when the robot tracks the diamond-shaped path by the different controllers.
ControllersEnergy ConsumptionTravel Distance
E (J)E (%)s (m)s (%)
Expert_FLC1.381601506.329.037577100.60
Optimal_MFs_FLC0.701540257.098.983455100.00
Optimal_MFs_FRs_FLC0.272872100.009.222562102.66
Table 18. The kinetic energy loss and the travel distance of the robot when the robot tracks the straightforward path by the different controllers.
Table 18. The kinetic energy loss and the travel distance of the robot when the robot tracks the straightforward path by the different controllers.
ControllersEnergy ConsumptionTravel Distance
E (J)E (%)s (m)s (%)
Expert_FLC0.338241233.854.926989100.00
Optimal_MFs_FLC0.258087178.444.938676100.24
Optimal_MFs_FRs_FLC0.144638100.004.934045100.14
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Pham, V.T.; Stefek, A.; Krivanek, V.; Nguyen, T.S. Design of a Saving-Energy Fuzzy Logic Controller for a Differential Drive Robot Based on an Optimization. Appl. Sci. 2023, 13, 997. https://doi.org/10.3390/app13020997

AMA Style

Pham VT, Stefek A, Krivanek V, Nguyen TS. Design of a Saving-Energy Fuzzy Logic Controller for a Differential Drive Robot Based on an Optimization. Applied Sciences. 2023; 13(2):997. https://doi.org/10.3390/app13020997

Chicago/Turabian Style

Pham, Van Thuan, Alexandr Stefek, Vaclav Krivanek, and Thi Son Nguyen. 2023. "Design of a Saving-Energy Fuzzy Logic Controller for a Differential Drive Robot Based on an Optimization" Applied Sciences 13, no. 2: 997. https://doi.org/10.3390/app13020997

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop