## 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.