Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

The mobile robots must be able to operate in a real environment, and navigate in an autonomous manner. In this case an intelligent control strategy that can handle the uncertainty can be implemented by the working environment, while comparing with the performance in real time of a relatively low computational load.

One of the applications of fuzzy logic is the design of fuzzy control systems. The success of this control lies in the correct selection of the parameters of fuzzy controller; it is here where the Particle Swarm Optimization (PSO) metaheuristic will be applied, which is one of the most used for optimization with real parameters. PSO, because of their ease of implementation, converges faster than the Evolutionary Algorithms (EA) has better performance [930].

The present research work deals with the problem of mobile robot autonomy, for which a fuzzy control system is developed using fuzzy logic and the PSO algorithm [3152].

This paper is organized into four sections as follows: Sect. 2: the points are developed and progress of the research work is shown. Sections 3 and 4: In part disclose the theory underlying the present work, in which issues such as fuzzy logic, PSO algorithm and a bit on the operation of autonomous mobile robot are discussed. Section 5 shows the results of the simulations are presented.

2 Mobile Robots

The particular mobile robot considered in this work is based on the description of the Simulation toolbox for mobile robots [1], which assumes a wheeled mobile robot consisting of one conventional, steered, unactuated and not-sensed wheel, and two conventional, actuated, and sensed wheels (conventional wheel chair model). This type of chassis provides two DOF (degrees of freedom) locomotion by two actuated conventional non-steered wheels and one unactuated steered wheel. The Robot has two degrees of freedom (DOFs): y-translation and either x-translation or z-rotation [1]. Figure 1 shows the robot’s configuration, it has 2 independent motors located on each side of the robot and one castor wheel for support located at the front of the robot.

Fig. 1
figure 1

Kinematic coordinate system assignments [2]

The kinematic equations of the mobile robot are as follows:

Equation 1 shows the sensed forward velocity solution [2]

$$ \left( {\begin{array}{*{20}c} {V_{Bx} } \\ {V_{By} } \\ {\omega_{Bz} } \\ \end{array} } \right) = \frac{R}{{2l_{a} }}\left[ {\begin{array}{*{20}c} { - l_{b} } & {l_{b} } \\ { - l_{a} } & { - l_{a} } \\ { - 1} & { - 1} \\ \end{array} } \right]\left( {\begin{array}{*{20}c} {\omega_{W1} } \\ {\omega_{W2} } \\ \end{array} } \right) $$
(1)

Equation 2 shows the Actuated Inverse Velocity Solution [3]

$$ \left( {\begin{array}{*{20}c} {\omega_{W1} } \\ {\omega_{W2} } \\ \end{array} } \right) = \frac{1}{{R(l_{b}^{2} + 1)}}\left[ {\begin{array}{*{20}c} { - l_{a} l_{b} } & { - l_{b}^{2} - 1} & { - l_{a} } \\ {l_{a} l_{b} } & { - l_{b}^{2} - 1} & {l_{a} } \\ \end{array} } \right]\left( {\begin{array}{*{20}c} {V_{Bx} } \\ {V_{By} } \\ {\omega_{Bz} } \\ \end{array} } \right) $$
(2)

Under the Metric system are define as:

  • \( V_{Bx} ,V_{By} \) Translational velocities \( \left[ \frac{m}{s} \right], \)

  • \( \omega_{Bz} \) Robot z-rotational velocity \( \left[ \frac{rad}{s} \right], \)

  • \( \omega_{W1} ,\omega_{W1} \) Wheel rotational velocities \( \left[ \frac{rad}{s} \right], \)

  • R Actuated wheel radius [m],

  • l a ,l b Distances of wheels from robot’s axes [m].

3 Navigation Control System

The proposed control system consists of three main fuzzy blocks: two controllers are based on the behavior of the robot (tracking and reactive) and one is in charge of combining the responses of the other two drivers, called block integration.

Each controller has a specific behavior, the problem is that they seem to be in conflict with each other when an unexpected obstacle appears, because if the route is planned when obstacles are present, the route can be designed to avoid them but when there are obstacles we do not realize that the two behaviors are in contradiction, one is designed to prevent the collision object and the other to keep the robot on the path.

The most common solution is to simply change among drivers as needed. However, this method is not very effective because of the lack of knowledge of the two controllers on to one another, the reagent remains the robot free from a collision, but may redirect the robot further from your destination to a point at which the tracking controller can no longer find their way back to the reference, or the tracking controller can directly guide the robot to an obstacle if the control reagent provides no actuation time. The proposed reference for navigation control always has both active controls and responses combined to create the movement of the robot. The integration is performed with another block called diffuse WFIS [2] (Weight-Fuzzy Inference System) so that this controller assigning weights is made responsive to each of the response values of the drivers.

The inputs are gathered from the information we can collect from the robot (sensors) or the environment by other means (cameras) and from this we need to create the knowledge rule base to give higher activation values to the response. If we want to take the lead on the robot movement one example of the rule is the following (if Front_Sensor_Distance is Close Then TranckingWeight is Medium and ReactiveWeight is Medium), both of our controls provide the right and left motor speed and we combine each one with the weight given by the WFIS block. Figure 2 shows the proposed navigation control [2].

Fig. 2
figure 2

Navigation control system [2]

4 PSO Algorithms

The Particle Swarm Optimization Algorithm (PSO) was applied to each of the design problems in order to find the best fuzzy controller reactive and tracking. The purpose of using a behavior-based method is to find the best controllers of each type and this can be achieved by PSO as it searches along the search space of the solution, which combines the knowledge of the best controllers (particles), and we can handle the exploration and exploitation throughout the iterations. The main task of the algorithm is to convert the particle into a FIS and then evaluate each particle to determine its performance. Figure 3 shows the flowchart of the PSO.

Fig. 3
figure 3

Flowchart of the PSO

4.1 Particle Encoding

The particle consists of 60 real-valued vectors, representing the parameters for the triangular membership function; we use five membership functions for each variable. This encoding is shown Fig. 4.

Fig. 4
figure 4

Particle encoding

4.2 Reactive Controller

The role of reactive control is to apply the same capacity when we are driving, i.e. to react to unexpected situations, traffic jams, traffic lights, etc., but in a more basic concept. The objective is to guide the robot through the maze avoiding any collision. It is our goal to optimize the robot to find the exit of the maze, we used a maze to optimize the reactive control because of the feature that conditions the simulation, i.e. it is a closed space in which the robot cannot move easily and each wall is considered an obstacle to the robot to avoid while moving. The FIS is Mamdani type; each consisting of 3 entries, namely the distances obtained by the sensors of the robots described in Sect. 2, and 2 outputs that control the speed of the servo motors on the robot, all this information is encoded in each particle.

4.3 Tracking Controller

The tracking controller has the responsibility to keep the robot on the right track, given a reference; the robot will move on the reference and keep it on the road, allowing moving from point A to B without obstacles present in the environment.

The controller will work keeping the error \( ({\Delta} {\text{ep}},\;{\Delta} {\uptheta} ) \) in the minimum values, Fig. 5, these minimum values are the relative position error and the relative error of the orientation of the front of the robot, the Mamdani fuzzy system and its 2 inputs are \( ({\Delta} {\text{ep}},\;{\Delta} {\uptheta} ) \) and two outputs which control the speed of each servomotor of the robot (Fig. 6).

Fig. 5
figure 5

Fuzzy controller inputs ep, eθ

Fig. 6
figure 6

Calculation of controller performance

Controller performance is measured using the equation of the mean square error between the reference and the robot trajectory. We perform each test three times and take the average, above, below and random reference.

In Fig. 7 we can see the overall flowchart of the PSO. At the point of evaluation of the particle, we measure the effectiveness of the tracking controller FIS (Inference System Fuzzy) in our toolbox of evidence, which will be in a closed circuit with a given reference by a straight line [2, 47] environment.

Fig. 7
figure 7

Flowchart of the PSO

4.4 WFIS Controller

The function of the WFIS control is to correctly combine the two behaviors of tracking and reaction and obtain a new global behavior that resembles the same ability that we apply when we are driving, that is to react to unexpected objects, but in a more basic concept and ability, to the problem that is the navigation of the robot. A forward moving behavior response out of the global control is desired. The objective is to guide the robot through the reference avoiding any collision with any obstacle present. It’s not our objective to optimize the robot to find the maze exit. We use a closed space where the robot cannot easily wonder off and each wall is considered an obstacle to the robot that it must avoid while it moves around. The FISs are Mamdani fuzzy systems [8], each consisting of three inputs, which are the distances obtained by the robots sensors described on Sect. 2, and two outputs that are the weights that will be used to integrate the responses of the other two controllers. All this information is encoded into each particle.

4.5 Objective Function

The PSO will be generating particles that will need to be evaluated and assigned a crisp value that will represent the controller performance on each of the criteria that we want to improve. For this, we need to provide the PSO with a good evaluation scheme that will penalize unwanted behaviors and reward with higher fitness values those individuals that provide the performance we are looking for in our controller; if we fail to provide a proper evaluation method we can guide the population to suboptimal solutions or no solution at all [2, 47].

4.5.1 Reactive Controller Objective Function

The criteria used to measure the Reactive controller performance are the following

  • Covered Distance

  • Time used to cover the distance

  • Battery life.

A Fitness FIS will provide the desired fitness value, adding very basic rules that reward the controller that provided the longer trajectories and smaller times and higher battery life. This seems like a good strategy that will guide the control population into evolving and provide the optimal control, but this strategy on its own is not capable of doing just that: it needs to have a supervisor on the robots trajectory to make sure it is a forward moving trajectory and that they does not contain any looping parts. For this, a Neural Network (NN), is used to detect cycle trajectories that do not have the desired forward moving behavior by giving low activation value and higher activation values for the ones that are cycle free. The NN has two inputs and one output, and 2 hidden layers, see Fig. 8.

Fig. 8
figure 8

Fitness function for the reactive controller

The evaluation method for the reactive controller has integrated both parts of the FIS and the NN where the fitness value for each individual is calculated with Eq. 3. Based on the response of the NN the peak activation value is set to 0.35, this meaning that any activation lower than 0.35 will penalize the fitness given by the FIS [2, 47].

Equation 3 expresses how to calculate the fitness value of each individual

$$ f(i) = \left\{ {\begin{array}{*{20}l} {fv\; * \;nnv} & {nnv < 0.35} \\ {fv} & {nnv \ge 0.35} \\ \end{array} } \right. $$
(3)

where:

fi :

Fitness value of the i-th individual,

fv :

Crisp value out of the fitness FIS,

nnv :

Looping trajectory activation value.

4.5.2 Tracking Controller Objective Function

The Tracking controller performance is measured with the RMSE between the reference and the robots trajectory; we apply the test three times and take the average on each of the three tests. The robot and the reference vertical position is random, but it’s ensured that on one test the robots’ vertical position is above the reference and on another test is below it. We do this to ensure the controller works properly for any case the robot may need it when its above or below (Fig. 9) [2, 47].

Fig. 9
figure 9

Fitness function for the tracking controller

4.5.3 WFIS Controller Objective Function

The WFIS controller performance is measured by the RMSE between the reference and the robot’s trajectory. We apply the test three times and take the average. On each of the three tests the robot’s and the reference vertical position are random, but we make sure that on one test the robot’s vertical position is above the reference and on another test is below it. We do this to ensure the controller works properly for any case the robot may need may need to deal with (Fig. 10) [2, 47].

Fig. 10
figure 10

Fitness functions for the WFIS controller

5 Simulation Results

This section presents the results of experiments carried out for the robot control system, with individual optimization of each behavior (tracking and reactive), necessary to obtain shown WFIS controller results.

The results are divided in 3 main principals:

  • Tracking Controller

  • Reactive Controller

  • WFIS Controller

The tools that were used to conduct the experiments are Matlab and simulation tool Simrobot.

5.1 Tracking Controller

Table 1 shows the configuration of the PSO and the results, in which we have the fitness value obtained in each experiment. It also shows the mean, variance, as well as the best and worst value obtained. In optimizing the weight of the inertia controller a constraint factor was used, not at the same time, but when the weight iteration inertia torque used as odd iteration a constraint factor is used.

Table 1 Summary of tracking results

Figure 11 shows the best path simulation during cycle PSO obtained for the tracking controller. The reference is defined by the red line and the smallest dot line is the trajectory of the robot, we can also see the graph of the FIS where input1 and input2 indicate the error on the position and orientation respectively, output1 and output2 speed to be applied to each actuator.

Fig. 11
figure 11

Tracking controller results

5.2 Reactive Controller

In this section, we show test of reactive controller, which includes the creation of a PSO algorithm to optimize the controller. The fitness of each controller is determined by their performance in the simulation tool. The robot should react in a closed environment (maze), avoiding obstacles present (walls) and must perform movements and avoid repeated.

Table 2 shows the configuration of PSO and displays the results, where we have the fitness value obtained in each experiment. It also shows the mean, variance, the best and worst value obtained. In this controller optimization constraint factor was used.

Table 2 Summary of reactive controls results

Figure 12 shows the best robot path during the simulation of the PSO cycle obtained for the reactive controller. We can also see the graph of the FIS, where input1, input2 and input3 refer to the reading of the sensors robot orientation (straight, left and front), respectively, output1 and output2 speed to be applied to each servomotor.

Fig. 12
figure 12

Reactive controller results

5.3 WFIS Controller

In this section, we discuss the WFIS test driver. The best of each type of reagent and tracking controller are used as blocks in the behavioral integration system, which include the creation of a PSO algorithm to optimize the controller. The fitness of each controller is determined by its performance in the simulation tool, in which the robot must start from a random starting point and move forward on the reference line to avoid any collision. This test is performed 3 times forcing each robot controller to start at least once above and below the reference line.

Table 3 shows the configuration of PSO and results, in which we have the fitness value obtained in each experiment. It also shows the mean, variance, the best and worst value obtained. In this controller optimization a constraint factor was used.

Table 3 Summary of WFIS results

Figure 13 shows the best robot path during the simulation of the PSO cycle obtained for the WFIS controller. We can also see the graph of the FIS, where input1, input2 and input3 refer to the reading of the sensors robot orientation (straight, left and front), respectively. Also output1 and output2 fuzzy weights will be applied to the controllers.

Fig. 13
figure 13

WFIS controller results

6 Conclusions

In this paper, the improved PSO algorithm used to tune the parameters of the fuzzy controller for the Reactive and Tracking Controllers, and we are currently working on the WFIS Optimization.

The fuzzy controllers both provide good results as they are able to guide the robot through the maze without hitting any wall and keep the robot on track. In comparison with the GA, only one of the two controllers in the tests that performed with the PSO proved to be better than the GA. Also, in the PSO less iterations have been performed, therefore consuming less computational resources.