Application of Fuzzy Logic in Mobile Robot Navigation

An autonomous robot is a programmable and multi-functional machine, able to extract information from its surrounding using different kinds of sensors to plan and execute collision free motions within its environment without human intervention. Navigation is a crucial issue for robots that claim to be mobile. A navigation system can be divided into two layers: High level global planning and Low-level reactive control. In high-level planning, a prior knowledge of environment is available and the robot workspace is completely or partially known. Using the world model, the global planner can determine the robot motion direction and generates minimum-cost paths towards the target in the presence of complex obstacles. However, since it is not capable of changing the motion direction in presence of unforeseen or moving obstacles, it fails to reach target. In contrast, in low-level reactive control, the robot work space is unknown and dynamic. It generates control commands based on perception-action configuration, which the robot uses current sensory information to take appropriate actions without planning process. Thus, it has a quick response in reacting to unforeseen obstacles and uncertainties with changing the motion direction.


Introduction
An autonomous robot is a programmable and multi-functional machine, able to extract information from its surrounding using different kinds of sensors to plan and execute collision free motions within its environment without human intervention. Navigation is a crucial issue for robots that claim to be mobile. A navigation system can be divided into two layers: High level global planning and Low-level reactive control. In high-level planning, a prior knowledge of environment is available and the robot workspace is completely or partially known. Using the world model, the global planner can determine the robot motion direction and generates minimum-cost paths towards the target in the presence of complex obstacles. However, since it is not capable of changing the motion direction in presence of unforeseen or moving obstacles, it fails to reach target. In contrast, in low-level reactive control, the robot work space is unknown and dynamic. It generates control commands based on perception-action configuration, which the robot uses current sensory information to take appropriate actions without planning process. Thus, it has a quick response in reacting to unforeseen obstacles and uncertainties with changing the motion direction.
Several Artificial intelligence techniques such as reinforcement learning, neural networks, fuzzy logic and genetic algorithms, can be applied for the reactive navigation of mobile robots to improve their performance. Amongst the techniques ability of fuzzy logic to represent linguistic terms and reliable decision making in spite of uncertainty and imprecise information makes it a useful tool in control systems.
Fuzzy control systems are rule-based or knowledge-based systems containing a collection of fuzzy IF-THEN rules based on the domain knowledge or human experts. The simplicity of fuzzy rule-based systems, capability to perform a wide variety tasks without explicit computations and measurements make it extensively popular among the scientists and researcher. This book chapter presents the significance and effectiveness of fuzzy logic in solving the navigation problem. The chapter is organized as follows: After the introduction of fuzzy logic importance in mobile robot navigation, Section 2 reviews methodology of previous works on navigation of mobile robots using fuzzy logic design. Section 3, first gives a brief description about the design of a Fuzzy Controller, then a case study shows how the fuzzy control system is used in mobile robots navigation.
Results from real systems address the fuzzy control influence and effectiveness to solve some of the navigation difficulties and to reduce their navigation costs. Closing this book chapter, Section 4 concludes the chapter with few comments and summarizes the advantages and limitations of using fuzzy logic in mobile robot navigation. The chapter can be interesting for students, researchers and different scientific communities in the areas of robotics, artificial intelligence, intelligent transportation systems, and fuzzy control.

Review of fuzzy logic applications for mobile robot navigation
Robust and reliable navigation in dynamic or unknown environment relies on ability of the robots in moving among unknown obstacles without collision and fast reaction to uncertainties. It is highly desirable to develop these tasks using a technique which utilize human reasoning and decision making. Fuzzy logic provides a means to capture the human mind's expertise. It utilizes this heuristic knowledge for representing and accomplishment of a methodology to develop perception-action based strategies for mobile robots navigation. Furthermore, the methodology of the FLC is very helpful dealing with uncertainties in real world and accurate model of the environment is not absolutely required for navigation. Therefore, based on a simple design, easy implementation and robustness properties of FLC, many approaches were developed to solve mobile robot navigation problem in target tracking, path tracking, obstacle avoidance, behaviour coordination, environment modelling, and layer integration (Saffiotti, 1997). This section reviews the proposed fuzzy control methods which used fuzzy sets for velocity control, rotation control and command fusion with focusing on the three most popular categories of: Path tracking, Obstacle avoidance and Behavior coordination.

Fuzzy logic for path tracking
Path tracking is a crucial function for autonomous mobile robots to navigate along a desired path. This task includes tracking of previously computed paths using a path planner, a defined path by human operator, tracking of walls, road edges, and other natural features in the robot workspace (Chee et al., 1996). It involves real-time perception of the environment to determine the position and orientation of the robot with respect to the desired path. For example in Figure 1, if the robot is misplaced, the controller task is to steer it back on course and minimize the orientation error (Δφ) and the position error (Δx) (Moustris & Tzafestas, 2005). Path tracking difficulties in dealing with imprecise or incomplete perception of environment, representation of inaccuracy in measurements, sensor fusion and compliance with the kinematic limits of the vehicle motivated many researchers to use fuzzy control techniques for path tracking. Ollero et al. (1994) developed a new fuzzy path-tracking method by combining fuzzy logic with the geometric pure-pursuit and the generalized predictive control techniques. Fuzzy logic is applied to supervise path trackers. Input of the fuzzy is the current state of the robot to the path to generate the appropriate steering angle. A new approach proposed by Braunstingl et al. (1995) to solve the wall following of mobile robots based on the concept of general perception. To construct a general perception of the surroundings from the measuring data provided by all the sensors and representing, a perception vector is assigned to each ultrasonic sensor. All these vectors adding together then combine into a single vector of general perception. A fuzzy controller then uses the perception information to guide the robot along arbitrary walls and obstacles. Sanchez et al. (1999) proposed a fuzzy control system for path tracking of an autonomous vehicle in outdoor environment. The fuzzy controller is used to generate steering and velocity required to track the path using the data collected from experiments of driving the vehicle by a human. Bento et al. (2002) implemented a path-tracking method by means of fuzzy logic for a Wheeled Mobile Robot. Input variables of the fuzzy controller are position and orientation of the robot with respect to the path. Output variables are linear velocity and angular velocity. Hajjaji and Bentalba (2003) have designed a fuzzy controller for path tracking control of vehicles using its nonlinear dynamics model. A Takagi-Sugeno (T-S) fuzzy model presents the nonlinear model of the vehicle. Then a model-based fuzzy controller is developed based on the T-S fuzzy model. A wall-following robot presented by Peri & Simon (2005) which the robot's motion is controlled by a fuzzy controller to drive it along a predefined path. Antonelli et al. (2007) address a path tracking approach based on a fuzzy-logic set of rules which emulates the human driving behavior. The fuzzy system input is represented by approximate information concerning the knowledge of the curvature of the desired path ahead the vehicle and the distance between the next bend and the vehicle. The output is the maximum value of the linear velocity needed to attain by the vehicle in order to safely drive on the path. Yu et al. (2009) used Taguchi method to design an optimal fuzzy logic controller for trajectory tracking of a wheeled mobile robot. Recently, Xiong and Qu (2010) developed a method for intelligent vehicles' path tracking with two fuzzy controller combinations which controls vehicle direction and a preview fuzzy control method presented by Liao et al. (2010) for path tracking of intelligent vehicle. The vehicle speed and direction are adjusted by fuzzy control according to future path information and present path information respectively.

Obstacle avoidance using fuzzy logic
Ability of a robot to avoid collision with unforeseen or dynamic obstacles while it is moving towards a target or tracking a path is a vital task in autonomous navigation. Navigation strategies can be classified to global path planning and local path planning. In global path planning, information about the obstacles and a global model of environment is available which mostly Configuration space, Road map, Voronoi diagram and Potential field techniques are used to plan obstacle-free path towards a target. However, in real world a reliable map of obstacle, accurate model of environment and precise sensory data is unavailable due to uncertainties of the environment. While the computed path may remain valid but to response the unforeseen or dynamic obstacles, it is necessary for the robot to alter its path online. In such situations, Fuzzy logic can provide robust and reliable methodologies dealing with the imprecise input with low computational complexity (Yanik et al., 2010). Different obstacle avoidance approaches were developed during past decades which proposed effective solution to the navigation problems in unknown and dynamic environments. Chee et al. (1996) presented a two-layer fuzzy inference system in which the first layer fuses the sensor readings. The left and right clearances of the robot were found as outputs of the first-layered fuzzy system. The outputs of the first layer together with the goal direction are used as the inputs of the second-layer. Eventually, the final outputs of the controller are the linear velocity and the turning rate of the robot. The second-stage fuzzy inference system employs the collision avoiding, obstacle following and goal tracking behaviours to achieve robust navigation in unknown environments. Dadios and Maravillas (2002) proposed and implemented a fuzzy control approach for cooperative soccer micro robots. A planner generates a path to the destination and fuzzy logic control the robot's heading direction to avoid obstacles and other robots while the dynamic position of obstacles, ball and robots are considered. Zavlangas et al. (2000) developed a reactive navigation method for omnidirectional mobile robots using fuzzy logic. The fuzzy rule-base generates actuating command to get collision free motions in dynamic environment. The fuzzy logic also provides an adjustable transparent system by a set of learning rules or manually. Seraji and Howard (2002) developed a behavior-based navigation method on challenging terrain using fuzzy logic. The navigation strategy is comprised of three behaviors. Local obstacle avoidance behaviour is consists of a set of fuzzy logic rule statements which generates the robot's speed based on obstacle distance. Parhi (2005) described a control system comprises a fuzzy logic controller and a Petri Net for multi robot navigation. The Fuzzy rules steer the robot according to obstacles distribution or targets position. Since the obstacle's position is not known precisely, to avoid obstacles in a cluttered environment fuzzy logic is a proper technique for this task. Combination of the fuzzy logic controller and a set of collision prevention rules implemented as a Petri Net model embedded in the controller of a mobile robot enable it to avoid obstacles that include other mobile robots. A fuzzy controller designed by Lilly (2007) for obstacle avoidance of an autonomous vehicle using negative fuzzy rules. The negative fuzzy rules define a set of actions to be avoided to direct the vehicle to a target in presence of obstacles. Chao et al. (2009) developed a fuzzy control system for target tracking and obstacle avoidance of a mobile robot. Decision making is handled by the fuzzy control strategy based on the sensed environment using a stereo vision information. A vision-based fuzzy obstacle avoidance proposed for a humanoid robot in (Wong et al., 2011). The nearest obstacle to the robot captured by vision system and the difference angle between goal direction and the robot's heading measured by electronic compass are inputs of the fuzzy system to make a decision for appropriate motion of the robot in unknown environment.

Fuzzy logic for behaviour coordination
To improve the total performance of a navigation system, complex navigation tasks are broken down into a number of simpler and smaller subsystems (behaviors) which is called behaviorbased system. In a behavior-based system, each behavior receives particular sensory information and transforms them into the predefined response. The behaviors include path tracking, obstacle avoidance, target tracking, goal reaching and etc. Finally, based on command output(s) of an active behaviour(s) the robot executes an action (Fig.2) [16].

Fig. 2. Behavior-based navigation systems overall architecture
The problems associated with the behavior-based navigation systems is the behavior coordination or action selection. The multiple behaviors may produce several command outputs simultaneously which may cause the robot move in unintended directions or system fail entirely. Reliable and robust operation of the system relies on the decision about how to integrate high level planning and low level execution behaviors, which behavior should be activated (arbitration) and how output commands should be combined into one command to drive the robot (command fusion). Early solutions were developed based on subsumption architecture (Brooks, 1986) and motor schemas (Arkin, 1989).
The subsumption architecture is composed of several layers of task-achieving behaviors. Coordination of behaviors is based on Priority arbitration (Competitive architecture). In Priority-based arbitration only a behavior with the highest priority is selected to be active when multiple conflicting behaviors are trigged and the other are ignored (Dupre, 2007;Fatmi et al., 2006). The subsumption approach is based on a static arbitration policy which means that the robot actions are predefined and fixed in dealing with certain situations. Since the behavior coordination is competitive and based on a fixed arbitration, it may leads to erratic operation under certain situations (Fatmi et al., 2006). For example in coordination of goal reaching and obstacle avoidance behaviors with rules like: When an obstacle is detected in front of the robot and the goal is at right, the priority is with Obstacle avoidance behavior and the robot turns left while the goal is at right.
The motor schemas architecture proposed by Arkin (1989) relies on cooperative coordination (command fusion) of behaviors which the multiple behaviors can produce an output concurrently. In this approach output of each behavior is captured based on their particular influence on overall output. The outputs are blended to vote for or against an action. For example in potential fields the outputs are in the vector form. These outputs are combined and the overall response of the system is achieved by the vector summation (Nakhaeinia et al., 2011a). This approach also may lead to conflicting actions or poor performance in certain circumstances. However, fuzzy logic provides a useful mechanism for command fusion coordination and also arbitration fusion coordination. The main fuzzy logic advantages are: i) it can be used for dynamic arbitration which behavior selection is according to the robot's current perceptual state, ii) it allows for easy combination and concurrent execution of various behaviors. A variety of approaches have been developed inspired by the success of fuzzy logic to deal with the behavior coordination limitations. Leyden (1999) designed a fuzzy logic based navigation system to overcome the subsumption control problem. The proposed system is consists of two behaviors. Output of each behavior is a fuzzy set which are combined using a command fusion process to produce a single fuzzy set. Then, the fuzzy set is defuzzified to make a crisp output. Fatmi et al. (2006) proposed a two layered behavior coordination approach for behavior design and action coordination using fuzzy logic. The first layer is consists of primitive basic behaviors and the second layer is responsible for decision making based on the context about which behavior(s) should be activated and the selected behaviors are blended. In another work presented by (Selekwa, 2005), fuzzy behavior systems proposed for Autonomous navigation of Ground Vehicles in cluttered environment with unknown obstacles. Multivalue reactive fuzzy behaviors are used for arbitrating or fusing of the behaviors which action selection is relied on the available sensor information. In another work by Ramos et al. (2006), a hierarchical fuzzy decision-making algorithm introduced for behaviour coordination of a robot based on arbitration mechanisms. In this method behaviors are not combined and just one behavior with maximum resulting value is selected and executed each time. A Fuzzy action selection approach was developed by Jaafar and McKenzie (2008) for navigation of a virtual agent. The fuzzy controller is comprised of three behaviors. The objective of this work is to solve the behaviour's conflict. The method uses fuzzy α-levels to compute the behavior's weight and the Huwicz criterion is used to select the final action. Wang and Liu (2008) introduced a new behavior-based navigation method called "minimum risk method". This behavior-based method applies the multi-behavior coordination strategy includes the global Goal seeking (GS) and the local Obstacle Avoidance (OA) (or boundary-following) behaviors. The fuzzy logic is applied to design and coordinate the proposed behaviors.

Fuzzy control system in mobile robot navigation
In this section, first we show how to design a Fuzzy Controller and then we present a case study to analyze the performance and operation of the fuzzy logic algorithms in the implementation of different behaviors for mobile robot navigation. Most of the proposed methods have applied fuzzy logic algorithm for velocity control, steering control and command fusion in the design of their behaviors. This study evaluates the influence of the design parameters in mobile robots navigation.

Design of a fuzzy controller
The schematic diagram of the fuzzy controller is shown in Figure 3. The fuzzy controller design steps include: 1) Initialization, 2) Fuzzification, 3) Inference and 4) Difuzzification.

Fig. 3. The fuzzy controller structure
First step is identifying the linguistic input and output variables and definition of fuzzy sets (Initialization). Fuzzification or fuzzy classification is the process of converting a set of crisp data into a set of fuzzy variables using the membership functions (fuzzy sets). For example in Figure 4, the degree of membership for a given crisp is 0.6. Shape of the membership functions depends on the input data can be triangular, piecewise linear, Gaussian, trapezoidal or singleton.

A case sudy
The first study shows that how fuzzy logic algorithm can be used for navigation of mobile robots. The selected methodology is a behavior-based approach which fuzzy logic algorithm is used for the design and action coordination of the behaviors (Fatmi et al., 2006). The navigation approach is consists of two layers. The first layer is comprised of primitive basic behaviors include: Goal reaching, Emergency situation, Obstacle avoidance, and Wall following. The second layer is Supervision layer which is responsible for action (behavior) selection based on the context and blending output of the selected ones. All the behaviors are designed using a fuzzy if-then rule base. Fuzzy controller inputs in the first layer are provided by sensory information. The inputs are distance to the goal (D rg ) and difference between the goal direction and the robot's current heading (θ error ). Fuzzy sets for θ error are: Negative ( Figure 7 shows the outputs membership functions.
For example the Goal Reaching behaviour is defined using the following rules from the  Finally, output of the layer is a crisp control commands in terms of a velocity and an angular velocity according to the selected behavior. Figure 9 shows performance and effectiveness of fuzzy logic in navigation of a mobile robot in crowded and unpredictably changing environment. The obtained result reveals robustness and reliability of the fuzzy logic in association with the design and coordination of the behaviours.
In our previous work (Nankhaeinia et al., 2011b) a behaviour-based motion-planning approach was proposed for autonomous navigation of a mobile robot. This approach lies in the integration of three techniques: fuzzy logic (FL), virtual force field (VFF), and boundary following (BF). The robot's translational velocity is controlled by the fuzzy controller to get more safety in dealing with obstacles and to optimize the navigation time. The fuzzy controller inputs are obtained from sensorial data. The inputs are obstacle position and target direction (Fig.10).
For the six-set partitioning of obstacle position (OP) and three-set partitioning of target direction (TD) the fuzzy rule base comprises 18 rules. Table 2 represents the fuzzy rule base. As shown in figure 11, the fuzzy controller has one output. The fuzzy sets for the output variable of Velocity are L (low), C (normal speed), and H (high).
As shown in figure 12, the obtained result shows that the fuzzy controller has a great performance in reducing the navigation time in a sample environment (Fig. 13). However, in this work the fuzzy controller has two inputs and one output which the output is translational velocity. To evaluate influence of the fuzzy logic in the design of a navigation www.intechopen.com   There are 15 fuzzy rule bases (table 3) for the 3-set partitioning of the obstacle position (OP) and 5-set partitioning of the obstacle distance (OD). Outputs of the controller are Rotational Velocity (R V ) and Translational Velocity (T V ). Membership functions and constants of the R V and T V outputs are shown in figure 15.
The obtained result from navigation of the mobile robot in a sample environment shows influence and effectiveness of the fuzzy controller in reducing the navigation time and increasing safety (Fig. 16). The robot's velocity changes according to the obstacle distance and obstacle position to achieve more safety in dealing with unknown and unforeseen obstacles ( Fig. 16(b)). When there is not any obstacle in the robot's path toward the target, it moves with its maximum speed to optimize the navigation time. However, the robot translational speed reduce in the presence of the obstacles and it rotates fast to prevent collision with them. As shown in figure 17 (a), the navigation time was about 90 (ms) which due to using the fuzzy controller it reduces to 48 (ms) (Fig. 17 (b)). In addition, using the fuzzy controller to control the Rotational Velocity resulted in smooth motion of the robot ( Fig. 17(b)).

Conclusion
Review of different works showed that Fuzzy Logic control is one of the most successful techniques in the design and coordination of behaviors for mobile robots navigation. In this chapter first we performed a study to describe how the fuzzy logic can be applied to design individual behaviors simply and solve complex tasks by the combination of the elementary behaviors. The Fuzzy control addressed a useful mechanism to design various behaviors by the use of linguistic rules. It also provided a robust methodology for combination and arbitration of behaviors. Then, two fuzzy controllers designed to demonstrate influence and robustness of the fuzzy control in a navigation system. The obtained results proved the successful operation and effectiveness of the fuzzy control in generating smooth motion, reducing navigation time and increasing the robot safety. Overall, advantages of fuzzy control in the design of a navigation system are: i) Capability of handling uncertain and imprecise information, ii) Real time operation, iii) Easy combination and coordination of various behaviors, iv) Ability of developing perception-action based strategies, and v) Easy implementation. However, fuzzy navigation methods fail in local minimum situations; they have lakes of self tuning and self-organization and difficulty of rule discovery from expert knowledge. According to the considerable performance of the fuzzy logic control, in future works we will design and evaluate the real time performance of different types of fuzzy reasoning and defuzzification methods on the other aspects of robots control.