You are on page 1of 57

International Master’s Thesis

Path Following for a Car-like Mobile Robot based on Fuzzy-logic

Wenjie Lin Technology

Studies from the Department of Technology at Örebro University 0 örebro 2012

Path Following for a Car-like Mobile Robot based on Fuzzy-logic

Studies from the Department of Technology at Örebro University 0

Wenjie Lin

Path Following for a Car-like Mobile Robot based on Fuzzy-logic

2012 Title: Path Following for a Car-like Mobile Robot based on Fuzzy-logic ISSN 1650-8580 .© Wenjie Lin.

The approach takes into account the vehicle non-holonomic constraints. The method is evaluated using a simulated robot running in the 2D simulator Stage. The thesis covers also the generation of a continuous path given a set of waypoints. i .Abstract The aim of this Master’s thesis is to investigate a path following approach for car-like robots using fuzzy logic. part of the Player robot middleware. The continuous path is modeled using uniform cubic splines.

.

I would also thank Amy Loutfi and Jonas Ullberg for their enthusiastic help. iii .Acknowledgements I am sincerely thankful to my supervisor Abdelbaki Bouguerra for his helpful guidance during this work.

.

. . . . 2. . . . . . . 3. . . . . . . 1. . . . .1 Description . . . . . . . . . 2 Background and Related work 2. . . .2 Rule inference . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Fuzzy controllers . . . . . . . . . . . . .2 Path representation . . . . .1. . . . . .Contents 1 Introduction 1. . . . . . . . . 1. . . . . . . . . v . . . . .3 Defuzzification . . . . . . .2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 2 3 3 5 5 6 7 8 8 9 10 10 15 15 16 17 19 21 21 22 22 23 23 . . . . . . . . . . . . 2. .3. . . . . . . . . . .2 Path generation and modeling . . . . . . . . . . . . 2. . . . . . . 4.1 Knowledge base of fuzzy controller 4. . . . .1 Fuzzification . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . . . . . . . . . .1 Traditional control . . . . . . . 4 Path following using Fuzzy logic 4. . . . . . . . . . . . . . . . . . . .3 Development work 1. . . . . . . . . .3. . .3. . . .1. . . . 4. . . . . . . . . . . . . . . . 2. . . . . . . . . 3. . . . .4 Organization . . . . . . . .2 Design of the fuzzy controller .1. . . . . . . . .4 Hybrid methods . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . . .1 Aim of the thesis . . . 4. . . 1. . . . . . .2 Limitations . . . . .3. .2 Neural prediction controllers 2. . . . . . . . . . . . . .1 Car-like vehicles . . . . . . . . . . . . . . .3 Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . 3 Continuous path generation using B-splines 3. . . .1 Research objectives 1. .3 Path following . . .4 Collision checking . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . .3. . . . .3 Spline modification . . . . . . . . . . . . . . .3 Work description . . . . . 2. . .

. . .2 Orientation error control . . . . . . . . . . . . . . . . . . . . 6. . . . 4. . . .2. . . . . . . .vi CONTENTS 4. . . . . . . .1 Implementation . . . . .2. . . . . . . . . . . . . . .1 Summary . 4. . . . . . . . . 5 Experiments and evaluation 5. . . . . . . . . . . . . . . .2 Newton-Rhapson method . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . .1 Position error control . . . .3 Position errors and orientation errors analyze . 5. . . . . . . . References 24 28 28 31 31 34 36 41 41 41 43 . . . . . . . . . . . .2. . . . . . . . .3 The structure of the fuzzy controller . . 6 Conclusions 6. . . . . . . . . . . .2 Further work . . . . . .

planet exploration. the controller guides the vehicle to follow this path as closely as possible at execution time. The aim of the current work is to develop control strategies to follow paths by car-like robots. be implemented on vehicles destined to operate safely in dynamic environments. Modifying the path in advance is effective for robot system since it is much easier for the robots to achieve the motion autonomy in a priori known and well-modified environment. mining. The position and orientation of robot’s main body and the angle of the steering wheels form the configuration of the robot. 1. After obtaining the smooth path.1 Aim of the thesis This thesis is the result of a master’s degree project done at AASS Learning System lab. Besides. stationary obstacles and configuration of mobile robot are presented in a two-dimensional map. To achieve this task in the classical approach. military. The motivation for using a fuzzy controller to follow the path is its ability to handle complex systems in a manner inspired from human expertise. generating smooth paths can avoid non-smooth motions that may lead to slipping of the wheels and reduce the robot’s dead-reckoning ability.Chapter 1 Introduction 1. The results of this work can. The generated path contains waypoints with feasible curvature that avoid collision with obstacles.2 Motivation Car-like Mobile Robots have been widely researched with the goal to use them in application areas such as industry. therefore. the waypoints are generated by a planner that has to take into account the geometrical structure and kinematics of the robot. robots can move without receiving extra visual or range information. Such robot systems are considered as vehicles whose kinematic models approximate the mobility of a car. etc [2]. 1 . Path following is one of the essential motion tasks for robots where a robot tries to reach and follow a geometric path (represented as a set of oriented waypoints from a given initial configuration) without human intervention.

3 Work description Car-like robots have kinematics constraints.introduced to solve complex nonlinear behavior problems. the obstacles are stationary . cubic B-splines allow sectional adjustments by moving some of their control points. the robot itself. The input of the system is a set of waypoints and a group of polygonal obstacles. Besides. the thesis presents a fuzzy controller that is tested in a 2D multiple-robot simulator. still some issues are ignored and many capabilities can be improved in future work. hence it is hard to find an adaptive control system which is accurate and complete. they can not drive sideways or rotate in place. they may need to stop and move backwards in order to take a sharp turn. we should first generate a continuous path to connect all the given waypoints. Intelligent control theory [31] has been φ: the wheel steering angle. This permits an easy and incremental construction of the fuzzy rule base and also to develop and test the basic behaviors separately. Even if the working environment is wellknown. They may need to perform many manoeuvres to reach the target position. In this project. It is the control mechanism that straightforwardly handles the problems of behavior arbitration and command fusion.3. 1. That is. specifically. The waypoints are determined by both position and orientation. is a system whose kinematics and dynamics are complex and non-linear. For example. Because car-like robots have steering constraints. "Since nonholonomic control systems are nonlinear systems in essence. since the curvature can simply be obtained by a function that operates on the derivatives of the curve. the curvature of the generated path should be easy to modify. Cubic B-splines are adapted in this work. INTRODUCTION 1.2 CHAPTER 1. sensor signal is uncertain and imprecise. Firstly.3. is based on typical intelligent control. To achieve our goal. To achieve path following. only stationary obstacles were considered. Fuzzy controller. the working environment is assumed to be static. The chief goal is developing a softerware controller to achieve smooth and collision-free path following. Such constraints that limit the possible directions of motion at a point but can be “undone” by local maneuvering is called nonholonomic constraints [23].2 Limitations Although the principle tasks were implemented and the expected goal has been achieved. linear control strategies can’t be used directly to solve such kind of problems" [25]. whose main component is a set of fuzzy rules encoding the reactive behaviors of the vehicle.1 Research objectives This thesis is intended to do some introductory research in the area of path following by mobile vehicles. 1.

ORGANIZATION 3 and neither added nor removed at execution time. It also discusses the obtained results and concludes with remarks regarding possible directions for future work. But only forward and turning motions are not enough sometimes. right-high. • Chapter 4 describes work to develop a fuzzy controller. In the developed behaviorbased approach.4 Organization This thesis is organized as follows: • Chapter 2 introduces background and related work. 1. • Chapter 6 summarizes the work developed in this thesis. the robot never moves backwards. left-low. • Chapter 5 reports experiments for testing and evaluating the developed controller. Moving objects(obstacles) are not considered in this work.4. Therefore.1. as they can result in inefficiencies and deadlock situations. only path-forward motion was considered. This approach makes the robot reach the target as soon as possible.e..3 Development work The implementation of the path following controller has been done in C++ programming language. i. only wheel turning e. there’s lack of capabilities for handling emergency cases. Because the environment is completely known and stationary. the robot is assumed to follow the generated path by forward motion. 1. left-high was used to tune the orientation and position errors.g. The testing and evaluation were carried using the 2D simulator Stage.3. Secondly. Thus the continuous path generation is limited to simple environments. The controller was implemented as a Player driver [6]. • Chapter 3 presents an approach of building uniform cubic B-splines paths given for sets of oriented waypoints. . The chapter includes also a summary of different robot controllers with an emphasis on fuzzy logic. right-low. several rules representing behaviors of an intelligent system have been established. The fuzzy controller is implemented as a Player driver.

.

1) [7]. it has to stop at the points whose curvatures are discontinuous to adjust its angular velocity and linear velocity. If the robot wants to follow such a path.1) has similar locomotion structure to a car. A particular way of path generation is based on cubic B-splines. Car-like robots can be considered as a three-dimensional system moving on the plane. 2. θ is the vehicle’s orientation angle. In the figure 2. The spline function and modification will be explained in detail in the next chapter. Therefore. However.1 Car-like vehicles A Car-like robot (see Figure 2. such as neural prediction. Car-like robots can’t drive sideways since they are not able to rotate in place. The first part describes the features and constraints of car-like robots that make the path following more complex. The motion is expressed as in Equation (2. R is the middle point of rear axle which represents the origin of the vehicle reference frame.1. the curvatures of these two parts are discontinuous. the key problem of related research is how to generate a path that has continuous curvature. The second part gives a summary overview of the existing methods on generating the continuous path by a given set of waypoints.Chapter 2 Background and Related work This chapter gives some background of the material presented in this thesis. It is a mobile vehicle whose two front wheels can be steered in parallel and the two rear wheels are parallel and fixed. The rest of chapter introduces the main types of existing controllers of path following category based on artificial intelligence. x and y are the coordinates of robot’s position in XY frame. Their motions are limited by non-slipping and curvature constraints. The minimal length paths for such robots are composed by a finite sequence of arcs of circles and straight-line segments. 5 . v is the linear velocity of point R. the advantage of fuzzy controller is emphasized and a brief introduction of fuzzy theory is given in the end of this chapter. φ is vehicle’s steering angle. l is the distance between wheel axles. reinforcement learning and hybrid methods.

they are represented as {p1 . a given position and orientation is known as a 3-tuple configuration (x. .1) 2.) ˙ = v cos θ x ˙ = v sin θ y ˙ = v tan φ θ l (2. the input of the execution system is a set of discrete oriented waypoints.1: A Car-like robot. θ). p2 .2 Path generation and modeling In this work. To solve the path-planning problem. the oriented waypoint set includes four points. (For the robots we consider in this thesis. p4 }. each point is set into the map with both position coordinates and orientation that are represented by arrow line segments. BACKGROUND AND RELATED WORK Y f l v y q R x X Figure 2. As shown in Figure 2. Shin D and Singh S [20] using clothoidal curves to build a trajectory for robot vehicles.2. A smooth path is a continuous curve that goes through each waypoint while avoiding collision with the obstacles in the meantime. y. JungHung H and Arkin R [11] realized a supervisory control by generating a Bezier curve on-line trajectory. Wagner P and Kotzian J [24] discussed path planning and tracking based on cubic hermite splines in real-time. p3 .6 CHAPTER 2. John C and Gabriel E [3] have presented a method to generate an efficient and collision free path by bending and adjusting a B-spline. many prior works use different splines to generate smooth paths.

2: A path contains a set of oriented waypoints {p1 . The trajectory is constructed after the user sets a series of control points in the plane. They are used as a modeling tool to generate smooth curves using a minimal set of control points. In this thesis. the robot can start to track it from the start point to the end. p4 }.3. extra waypoints are interpolated between each pair of control points along the slope of the line connecting them. This method allows user to control the helicopter by simply providing limited via points for the trajectory. The B-spline was created by Isaac Jacob Schoenberg and is stands for basis spline. . p3 . Tracking is generally done with the aim of minimizing errors in position and orientation with respect to a reference point on the path. the uniform cubic B-spines are used to construct the car-like robot smooth paths. Path following system should also decide which way it should follow and whether the robot is lost or succeed the tracking action. Controller design is the core part of path following. previous works on building controller is summarized in the following main methods. More details about uniform cubicB splines are given in the next chapter. 2. p2 . Kale H and James F [9] implement an autonomous helicopter trajectory which is specified by a cubic B-spline.2.3 Path following Once the continuous path has been generated. PATH FOLLOWING Y Obstacle 7 P2 P3 P4 P 1 Obstacle x Figure 2. Catmull-Rom B-splines is used to generate the path which pass though the control points.

the inputs are compared with the actual positions that measured by sorts of transducer at the outputs. The control vec- . It requires three terms operating on the error signal to produce a control signal Figure 2. Any difference between the actual and desired value is amplified and converted to reduce the error and lead the system go to acceptable area. Another form of control is on-off control. BACKGROUND AND RELATED WORK Output + å PID å Mobile robot model - Figure 2. The idea of predictive controller is computing a future control action that is based on output values predicted by a model [18].3.8 Input error CHAPTER 2. 2. Neural networks are an attractive way to model complex non-linear systems due to their inherent ability to approximate arbitrary continuous function. speed or other parameters [26]. where k is the sample time. A. and it is robust.3. Since PID controller is easy to model. In Julio E and Ismael A’s work [15]. Most of the applications belong to the form of closed-loop control. the two basic value sources for network training are the desired states with control vector and the measured states. a PID based path tracking controller is successfully implemented in a synchro-drive mobile robot. But it is only adapted to a linear model with simple parameters. Oriolo described a very detailed way of using feedback control techniques to achieve car-like robot motion tasks [14]. z (y) . some researchers use it to build the path-tracking controller. For the position control. 2. z (θ)]. One of the developed closed-loop control is PID (Proportional-Integral-Differential) control.1 Traditional control Traditional control systems are based on the concept of feedback.3: The structure of PID controller [15].2 Neural prediction controllers Some prior works use a neural predictive controller for path tracking.3. Servomechanism is one kind of automatic device that use error-sensing negative feedback to control mechanical position. Servomechanism type control is widely used in robot path planning as well. The path generation module produces the desired states. This kind of controller attempt to minimize the error by adjusting the process control inputs. As shown in Figure 2. Value in negative feedback is calculated by an “error” as the difference between a measured process variable and a desired value. which are represented by Z (k) = [z (x) .4. De Luca and G. System output is in the form of on or off with the movement provider. Gu D and Hu H [8] presents a modelbased predictive controller(MPC) based on multi-layer back-propagation neural network.

They are divided by two factors.3 Reinforcement Learning Some of the researchers use the reinforcement learning strategies to control robot behavior. y (k − 1) . The measured states are represented by the current states of robots. y (k) .4: The structure of back propagation network [8]. yielding outputs are represented as X (k) = [x (k) . the speed of robot v(k − 1) and the steer angle α(k − 1). In RL system. which obtained from the position estimation module as X (k − 1) = [x (k − 1) . There are three main groups of methods of RL. DP requires both bootstrapping and complete model of the environment. PATH FOLLOWING 9 Figure 2. Then the network start the forwards training though the hidden layer functions. the back propagation happens. they are dynamic programming (DP) methods. If E is larger than a threshold. TD methods learn faster than MC methods during exploring .2. which fine-tune the behavior by rewards or punishments. MC and TD methods do not require the model of environment. since the environment of the robot is the real world and it might change often. The errors E between Z(k) and X(k) are obtained and set as feedback signals. 2. and TD methods need do bootstrap but MC methods do not. and the iteration will continue until the errors are small and less than the given thresholds. θ (k)]T . the weight of each hidden layer will be modified. Both control vector and measured states formed the inputs of backpropagation neural network. It is hard to use DP methods based on models of well-known environments. Bootstrapping is used to update the estimate of state values and action values based on the estimate of later states. models of the environment and bootstrapping.3. θ (k − 1)]T . monte carlo (MC) methods and temporal difference (TD) methods. On the other hand. which are further decomposed into tangential and normal errors. Reinforcement learning (RL) is a supervised learning [22]. tor consist of two variables.3.

The escape lines controller built the free escape lines set and compare with the catch-up curve which is built by the path planner. Fuzzy logic controllers are cheaper to develop. more than one controller is used to cooperate with each other in order to achieve better results. and they are easier to understand in natural language terms [17]. 2. they cover a wider range of operating conditions. Philippe G and Cyril N implement a hybrid controller that is made of escape lines controller and fuzzy one on Praxitele cars [5]. the priori given path by a path planner is adapted to the real and dynamic environment. As early as 1965.4 Hybrid methods In some previous works. BACKGROUND AND RELATED WORK because of TD bootstrap allowed estimate to update other estimate. time varying and uncertain system. rather than after each episode. Matthias H and Oliver W present a hybrid feedback controller that integrate a local obstacle-avoidance controller and a global path replanning controller for a mobile robot [10]. Zadeh of California University published a first paper about fuzzy logic. Lavi M and Sara K use Q learning to realize the path following of a koolio robot [30]. they do not need to wait until the end of the episode to decide the policy is better or worse than previous one.5 Fuzzy controllers Fuzzy methods became one of the most popular ways to design controllers for nonlinear. then chose the nearest free escape line as the following path and send it to fuzzy controller.Baltes and Yuming manage to use a case-based function approximator to expand the RL to deal with path-tracking problem with a car-like robot [1]. 2. In most of the . which introduced the concept of “linguistic variables” [29]. Q learning is adapted to choose the next state and update the system inputs. So many researchers choose TD method to training the robot.3.3. In 1987. By this hybrid controller. TD methods can know whether an explored choice is good or bad immediately and update the policy at each time step. Some of the cases that similar to the inputs are found to generate a nearest neighbor set. Each case is represented as a collection of the state and the action. to achieve more complicated motions. The fuzzy controller follows this path taking into account obstacles detected by sensors. that is. many studies focus on adopting the fuzzy logic control method to solve the path-tracking problems. J.10 CHAPTER 2. Later he analyzed his ideas in a 1973 paper. Q learning is a popular method of TD methods. This controller enables collision-free tracking for preplanned path in both indoor and outdoor environments. TD methods update value after each time step. Japanese researcher Takeshi Yamakawa demonstrated fuzzy control method by an “inverted pendulum” experiment [27]. Since path-tracking problem for nonhonolomic robots involves both kinematics and dynamics difficulties and the interaction between the vehicle and the terrain may be hard to model in general.

the lower membership is used as the intersection value. we say the set of hot weather contains the set of very hot weather. As Zadeh point out in 1965. the membership function is read as the individual x belong to the set A is set to µA (x). but would be partly true or partly false to some degree of membership. The fuzzy set theory not tread the proposition as only true or false way. It is used to find out the common part of elements which shared by two sets. the crisp and fuzzy sets of “hot weather” could be different. where µA (x) µB (x) for all x ∈ X. . These interactions are called operations.3. The first one is called complement. In crisp set. There are four basic operations. For example.5 is read as “Buss belongs to the set of fast vehicle to the degree 0. The idea of fuzzy logic is to explain thoughts and concepts by uncertain and imprecise linguistic variables [29]. if we have the set of hot weather. The next one is an intersection operation. both position controller and orientation controller are developed to achieve the desired state [16. a smooth transition is provided to the fuzzy set and weathers are gradually removed from the set of “hot weather” according to the decrease of their temperatures. For any element x of universe X. the weather which is 29◦ C. 30◦ C is set to be a threshold value and the weathers above 30◦ C are hot and below are cold. the intersection would be dry AND hot weather. 4]. For example.” The fuzzy sets can interact with each other.5. µA B (x) = min[µA (x). when one set is a subset of another one. µB (x)] = µA (x) ∩ µB (x) In the opposite way. For example. For example. PATH FOLLOWING 11 approaches. the union of two sets is to combine both set with every element that falls into either set. Fuzzy sets In the fuzzy theory. “Fuzzy logic is determined as a set of mathematical principles for knowledge representation based on degrees of membership rather than on crisp membership of classical binary logic”. This logic cannot accept the vague concepts and it therefor falls to answer the paradoxes. For example. its complement is the set of not hot weather. A ⊆ B. an element may belong to both sets with different memberships. The complement of a set is an opposite of this set. In fuzzy set. It is represented as µA B (x) = max[µA (x). Instead of the crisp function. For example. It can be expressed by µA ¯ (x) = 1 − µA (x). Second. we have a hot weather set and a dry weather set. In many cases. Thus.2. no longer suddenly becomes a cold weather. which is called the membership function that has values between 0 and 1. a fuzzy set A of universe X is defined by a function µA (x). Crisp set theory uses only true or false value in its logic. µfast (buss) = 0. we say a set contains the subset. the union of hot weather and dry weather would become the weathers are hot OR dry. This containment operation is represented as. µB (x)] = µA (x) ∪ µB (x). It allowed all things associate with a certain degree.

Assume that a and b are two membership functions between 0 and 1 [12]. the intersection can be specified by T-norm (triangular norm) operators. 1] which satisfying boundary. There is another class of operators. we can set the following rules to a fuzzy controller of a robot: IF road is smooth. Fuzzy rules Fuzzy rule-based system on fuzzy set theory is the most important tool to build the fuzzy controller. where A and B are linguistic values defined by fuzzy sets on universes of discourse X and Y. x and y are linguistic variables. where ⊗ is a T-norm operator [12]. THEN speed is fast. If A → B is interpreted as A entails B. The justification of basic requirements for T-conorm is similar to that of the requirements for T-norm operators. In general. which refer to fuzzy union operation. Assume that a fuzzy if-then rule be defined as a binary fuzzy relation R on the product space X. This rule can be represented as A → B. . y). R = A → B = A × B = X×Y µA (x) ⊗ µB (x)/(x. A T-norm is a binary operator on [0.1: T-norm and T-conorm operators. There are two ways to express the fuzzy rule A → B. Fuzzy rule also known as fuzzy if-then rule. b < 1 T-conorm a∨b a + b − ab 1 ∧ (a + b) if b = 0  a b if a = 0  1 a. One of them is “A coupled with B” and the other one is “A entails B”. we can express as the following form: IF x is A THEN y is B. IF road is rugged. If A → B is interpreted as A coupled with B. then it can be written as four different formulas [12].12 CHAPTER 2. Table 2. THEN speed is slow. monotonicity .commutativity and associativity. called T-conorm.1shows the most frequently used T-norm and Tconorm operators. BACKGROUND AND RELATED WORK Minimum/Maximum Algebraic product/sum Algebraic product/sum Drastic product/sum T-norm a∧b ab 0 ∨ (a + b − 1) if b = 1  a b if a = 1  0 a. b > 0 Table 2. For example.

it was introduced by Ebrahim Mamdani in 1975 [19]. The Mamdani inference is performed by four steps. One of the popular one is to find the centre of gravity(COG). The most common fuzzy inference is called “Mamdani-style” inference. If we use singleton spikes as the membership function of the rule consequents. we should use the fuzzy inference to mapping the input and output of fuzzy controller.2).2. There are several methods of defuzzificaiton. rule evaluation. If the output of each fuzzy rule is constant. A singleton is a fuzzy set that contains only a single particular point on the universe of discourse. on the interval ab. Each rule generates a membership function of rule consequent. The final output should change back to a crisp value. it is called “Sugeno-style” inference [21]. The formula is applied as in equation (2.5.3. x is the sample of points of the fuzzy set A. . fuzzification of the input variables. All the membership functions are aggregated into a single fuzzy set as the input of defuzzification process. Fuzzificatin is to take the crisp inputs into fuzzy sets. the difference between Sugeno and Mamdani methods is that rule consequents are singletons in Sugeno method. y) = sup{c|µA (x)⊗c c 1} Fuzzy inference After known the theory of fuzzy set and fuzzy rules. aggregation of the rules outputs and defuzzification. PATH FOLLOWING 13 * Material implication: R = A → B = ¬A ∪ B * Propositional calculus: R = A → B = ¬A ∪ (A ∩ B) * Extended propositional calculus: R = A → B = (¬A ∩ ¬B) ∪ B * Generalization of modus ponens:µR (x. COG = b x=a µA (x)x b x=a µA (x) µB (x) 0 (2. it finds the point where its vertical line would cut the aggregate set into two equal pieces [12]. As shown in Figure 2. Usually there are multiple fuzzy rules of a fuzzy controller. the inference becomes “zero-order Sugeno”. Rule evaluation is to elicit and construct fuzzy rules. Assume that the aggregate output membership function is a discontinuous fuzzy set A. In other word.2) Where µA is the aggregated output membership function.

08 Rule: If x is A1(0.2)And y is B1(0.2 AND (PROD) 0.08 1 0.4 0.2 AND (PROD) 0.5: The Mamdani rule evaluation(top) and The Sugeno rule evaluation(bottom).4) Then z is C2(0.4 0.08) Figure 2. BACKGROUND AND RELATED WORK 1 0. .14 CHAPTER 2.

y) and orientations. 15 . The obstacles are presented as a group of polygons on a two-dimensional map.1. Left(input): Oriented waypoints and obstacles.Chapter 3 Continuous path generation using B-splines A path generating method based on cubic B-splines is presented in this chapter to represent a path that connects all the waypoints that are given as the inputs of the control system.1 Description As shown in Figure 3. The output of path generator is represented as a feasible path that connects all the waypoints. The waypoints have both position coordinates (x. such as too large curvatures for robot steering or too narrow space for robot passages though obstacles. 3.1: The inputs and outputs of path generator. The path satisfies both smoothness and collision-free requirements. Right (Output):A continuous path passing through the given waypoints. P2 P2 P3 P4 P 1 P 1 P3 P4 Figure 3. the inputs of the path generator include a set of waypoints and a group of obstacles. A stretch method is adapted to make the path avoid undesired and unnavigable situations.

t is a global parameter. Considering kinematics constraints.. and the front wheel’s steering angle is upper bounded. Once the path is generated. 3. Therefore the required path should be smooth and its curvature should not be larger than the maximum one. one in front of and one behind along the orientation.φmax is the maximum steering angle. the curvature for each point on spline which represented by ki is no larger than the maximum curvature kmax . the curve checking occurs from the first to the last point of the spline. l is the wheelbase. The curvature of points on generated B-spline is calculated by: . in other words. CONTINUOUS PATH GENERATION USING B-SPLINES In our work. there are two non-holonomic constraints.2 Path representation We choose uniform cubic B-splines as the path generating function which is a typical smooth function and its curvature is easy to obtain. we add two additional points for each control point. In order to make the spline go across all the oriented points in original waypoint set. On the other hand. n control points design n − 3 segments and each segment is related to four control points [7]. The robot can only move along the main axle which is perpendicular to the rear wheels of robot.1) Where Pi are the control points and Ni.2) is not passing the control points but only imitate the overall shape of the control polygon connecting the control points.e.3 (t) 0 t 1.16 CHAPTER 3. kmax = 1 rmin = tan(φmax ) l (3.2) Si (t) = t3 t2 t 1    6 −3 0 3 0 Pi+1  1 4 1 0 Pi+2 As shown in Figure 3. as the new control points. The B-spline should satisfy the curvature constraint. n − 1 3 (3. the robot has to follow the path without colliding with obstacles.2). collision-free paths are required. it is given as in (3.3) Where rmin is the minimum turning radius. we only consider the forward motion of car-like robots that are not supposed to stop except at the final goal.2. A cubic B-spline formulation in t is written as: n−1 St = i=0 Pi Ni. ki kmax . i. The blending function of uniform cubic B-spline can easily be precalculated and is equal for each segment in this case.3 is normalized B-spline basis function (blending function). the spline generated by four control points with function (3.    Pi−1 −1 3 −3 1   1  3 −6 3 0  Pi  (3.

Once either the wrong curvature or obstacle collision is detected. as shown in Figure 3.The curve tends to imitate the overall shape of the control polygon while it passes none of the control points. the control points are formed by the original inputs and the additional points.2: A uniform cubic B-spline specified by four control points {p0 . all the related segments should be re-measured. p1 . SPLINE MODIFICATION 17 Figure 3. the related segments should be modified.2.3.3. p2 .4) Where (x. After adding two extra points along the orientation of each control point. each segment is related to four control points.5).3 Spline modification Curvature and collisions should be checked simultaneously. . The curve can be modified by increasing or decreasing the stretch weight of additional points. As mentioned before. 3. the control polygon is specified by the set of control points. the path is available to go across the original control points. When one additional control point changes. p3 }. As shown in Figure 3.3. The additional points is calculated by Equation (3. ki = |x y − y x | (x 2 + y 2 ) 2 3 (3. y) is the coordinate of a point on the spline.

8 3 4 5 6 7 8 9 10 11 Figure 3.4 4.2 P1 4 P3 Wi=0. .4 4.2 P0 3 P2 2.18 CHAPTER 3.4 3..8 3 4 5 6 7 8 9 10 11 Figure 3.6 Wi=0.8 3.2 3.1 3.4 3.4 3.e.4: The shape of the curve changes by stretching the additional points.2 P1 4 P3 Wi=0.by changing the values of the weights wi . i.8 3.6 3.2 P0 3 P2 2.2. All points here were placed using wi = 0. 4.3: A cubic B-spline specified by the original and the additional control points. CONTINUOUS PATH GENERATION USING B-SPLINES 4.

4 Collision checking The continuous path.4. As shown Figure 3. . sin θ)T . the path turns smoother as long as the additional points move further from original points. If the distance between the additional point and original point exceed the maximum regulated distance we set. It is obvious to see that wi pulling the curve towards control points as it decreases or moving the curve away as it increases. wi is the stretch weight and µ is a unit vector. a1 = pi + wi µ a2 = pi − wi µ (3. In two-dimensional map.3). (P1 P2 P3 ). the segment of collision area would be selected and the path modification starts with the related control points. have to be checked for collision avoidance.4.5) Where a1 and a2 are two additional points of pi . we use a simple math method to store the robot and the obstacle as two arrays of triangles {(R0 R1 R2 ). as shown in Figure 3. while the other curve is obtained by increasing the wi to 0. the maximum steering angle is set to be pi/4.3. once generated. COLLISION CHECKING 19 P0 R2 O P2 P1 R0 P3 R3 P4 R1 Figure 3. in Figure 3. In my work. the modification process will end and indicate that there is no available path generated. one of the curves is specified by adding two additional points for each control points by decrease wi to 0. If a collision is detected. During the path modification.5: Collision-free detecting of robot and obstacle. To detect whether a path is collision-free.1. such that µ = (cos θ.4. the maximum curvature is calculated using equation (3. the location of robot is represented by O which is the middle of the robot’s rear axle.5. 3. θ is the orientation of pi . here we use proximity query package (PQP) to check whether pairs of triangles from different arrays are overlapping [13].2. we first load robot to current position. (R1 R2 R3 )} and {(P0 P1 P2 ). (P3 P4 P1 )}.3 wi is 0.

.

T rapazoid(xcen . xd .2) The Trapazoid function is implemented as a combination of the RampUp and RampDown function. as part of the work of this thesis. xr . to control a mobile robot to follow a continuous path.3) 21 . “∩ operation is defined as minimum function which belong to T-norm operators. xslope .1)  xr −xl 1 else Where xl is the left breakpoint and xr is the right Down function is just reflection. The function called “RampUp” is implemented as.Chapter 4 Path following using Fuzzy logic In this chapter. we describe the fuzzy rule-based controller that was developed. 4. We use a piecewise function to generate variety of membership functions. xsolpe + xcen + xd . x) = RampUp(xcen − xd − xsolpe . xr .1 Knowledge base of fuzzy controller In the fuzzy controller. then the Rampif x < xl if xl < x < xr else (4.   1 xr −x RampDown(xl . each fuzzy variable is associated with a fuzzy set that is characterized by its membership function. x)∩ RampDown(xcen + xd . xcen − xd . x) (4. x) = (4. x) =  xr −xl 0 breakpoint.  if x < xl  0 x−xl if xl < x < xr RampUp(xl .

particularly for dynamic nonlinear systems.1 Fuzzification Fuzzification involves taking the crisp inputs to determine the degree to which these inputs belong to each of the appropriate fuzzy sets. The fuzzy controller implement by three steps. the fuzzy operator (AND or OR) is used to obtain the single value of the antecedent evaluation. fuzzification. 0. in 1985 [21].1.1: The RampDown. PATH FOLLOWING USING FUZZY LOGIC RampDown Trapazoid RampUp 1 0.5).1. in Figure 4. and apply them to the antecedents of the fuzzy rules. Speed (m/s) Figure 4. A singleton is a fuzzy set with a membership function that is unity at a single particular point on the universe of discourse and zero everywhere else. 0.5). we use the min and max function .22 CHAPTER 4. the three fuzzy set Slow. Fast associated to the fuzzy variable speed. The action part is the output which represented as singleton spike. For example. The fuzzy rules follow the “IF condition THEN action” type. The activation degree of each antecedent is calculated. To evaluate the conjunction or disjunction of the rule antecedents. The sugeno method is computationally effective and works well with optimization and adaptive techniques. If the given fuzzy rule has multiple antecedents. This type is called “sugeno-style” and it was first introduced by Michio Sugeno.5 Slow Medium Fast 0 1 . which makes it very attractive in control problems. Medium.2 Rule inference This step is to take the fuzzified inputs.1. fuzzification of a 1m/s value yields (Slow. (Fast. rule inference. The condition part is a set of input variables which related to the membership functions formed by the types shown in Figure 4. 4. 4. defuzzification. RampUp and Trapazoid functions.1.

4. Assume the current state of robot is (xc . The output for each rule in zero-order sugeno-style inference is constant. one significant step is how to choose the subgoal points and send them to the fuzzy controller to update the position that the . DESIGN OF THE FUZZY CONTROLLER Medium And 1 0.82 Close If 1 0.3 Defuzzification The final step is transforming the fuzzy sets into a crisp value. In this model aggregation operation simply includes all the singletons. Path following motion is good or bad depend on how precise the robot passes by the sequence of points. |Ep | = 2 ( yi − y2 c ) + (xi − xc ) (4. respectively. yi . The task is achieved by two set of rules whose respective purposes are to minimize both the error in position which represented by Ep and the error in orientation which represented by Efo .1. the output crisp value is calculated by obtaining weighted average (WA) of singletons for all rules [12]. yc . θi ) which is called orientation goal. applying sugeno-style inference to the fuzzy rule “If (Distance is Close) and (Speed is Medium) then Braking is Medium” yields the part of the fuzzy set associated with Braking that represented as singleton.2.4) WA = i= n i=1 µ( xi ) Where µ(xi ) is the weighing coefficient that attached to the consequence constant value for rule i.2 shows. The input for the defuzzification is the aggregate output fuzzy set. θc ) which is called configuration vector.82 23 Medium Then 1 0.2 Design of the fuzzy controller The path can be treated as a series of ordered oriented points.2: Sugeno-style fuzzy rule inference.9 0 3m Distance 5m/s Speed -2m/s Braking Figure 4. the desired one is (xi .4.5) Efo = θi − θc To achieve the goal of our task. 4. Suppose there are n rules. As Figure 4. n 1 µ(xi )xi (4.

θc is the heading of the vehicle. When the robot gets close to sub-goal. There are several parameters of the car-like robot to take into account (Figure 4. SideRight(SR). A constant threshold value is used when choosing the next position the robot should go to. In the non-holonomic system the angular velocity is dictated by the robots forward velocity. π] range that indicates the relative heading toward the desired position G point: FrontLeft(FL). they were obtained by a straightforward encoding of common sense human experience and knowledge about car driving. Path is generated by smooth-path generator. * |Ep |: an input variable that indicates the distance between robot current position and desired position.e. When the robot is far away from sub-goal point. i.1 Position error control As for the fuzzy rules. It helps robot to match the orientation goal under the nonholonomic constraints. |EPMax |] range: Close. It is associated with a five term set of fuzzy sets defined over the [−π. The algorithm was described in chapter 3. PATH FOLLOWING USING FUZZY LOGIC robot should arrive to next.. Eo = arctan 2(y1 . only the position modification rules are considered. Far. Input variables * Eo : an input variable that indicates the angle between the robot’s main axis Hc and the vector Ep .3. The orientation error Eo is calculated by a two-argument function atan2.24 CHAPTER 4. x1 ) (4. 4. the point will be selected as a sub-goal and sent to controller. φ indicates the steering angle of the front wheels. the speed should slow down and the orientation rules are applied by the fuzzy controller system simultaneously. Otherwise. If the distance between the current position and a point on the spline is smaller than the threshold value the point is ignored and a point further away on the spline is used.): (xc . In this thesis.2. yc ) is the coordinate of point R which is located in the middle of the rear wheels. the angle between the main axis Hc of vehicle and the x axis. In this case. V represents the velocity of the reference point R measured along the main axis of the vehicle. It is associated with a two term set of fuzzy sets defined over the [0. SideLeft(SL). we constrained the maximum angular velocity to (k · Velc ) where Velc represents current linear speed and k represents a coefficient reflect to the curvature of current path.6) . FrontRight(FR). Ahead(A). the principle assignment is moving the robot to desired place as fast as we can. The generated path has several segments which contain a number of oriented points.

φ indicates the wheel steering coefficient.4. projHc Ep is the projection of Ep onto vector Hc and projCh Ep is the projection of Ep onto the vector Ch ) . to the sub-goal G on the generated path. Eo is the angle between the robot’s main axis Hc and Ep .2. R.(Ep represents the vector from the origin of the robot.3: The position error control. DESIGN OF THE FUZZY CONTROLLER 25 Y Ch proj H c E P x1 Hc f Eo R Ep Hg G projCh EP y1 q X Figure 4.

It is associated with a two term set of fuzzy sets defined over the [0. arctan 2 function is available to distinguish angles come from four quadrants. PATH FOLLOWING USING FUZZY LOGIC where y1 = sgn(Ep · Ch )|projCh Ep | and x1 = sgn(Ep · Hc )|projHc Ep |. 1] range: Slow . * IF Eo is SL THEN φ is LH. projHc Ep = Hc · Ep Hc |Hc |2 (4. * IF |Ep | is Far THEN V is Fast. RightLow(RL). RightHigh(RH). It indicates the sideways vector of the robot. Zero(Z). The fuzzy reasoning rules used for modifying position error are presented as: * IF Eo is FL THEN φ is LL.8) The projection of Ep onto Ch that is perpendicular to Hc is given by projCh Ep . LeftHigh(LH).26 CHAPTER 4. Output variables * φ: an output variable which represents the wheel steering coefficient. 1] range: LeftLow(LL). . Fast. The projection of Ep onto Hc is given by. |projHc Ep | = |Hc · Ep | |Hc | (4. * IF Eo is A THEN φ is Z. * IF Eo is FR THEN φ is RL. * V : an output variable which represents the velocity coefficient of the reference point R measured along Hc . * IF Eo is SR THEN φ is RH. and the length of the projection is. * IF |Ep | is Close THEN V is Slow.7) where projHc Ep is the heading vector of robot. Hc · Ep is the dot product. It is associated with a five term set of fuzzy sets defined over the [−1.

(Efo is the angle between sub-goal orientation θi and robot’s main axis Hc .2.4: The orientation error parameters.4. Efo is calculated by θi − θc ) . DESIGN OF THE FUZZY CONTROLLER 27 Y Ch x2 Hc f E fo qi R G y2 qc X Figure 4. θc is the heading of the vehicle.

The fuzzy reasoning rules used for decreasing orientation error are presented as follows: * IF Efo is FL and |Ep | is Close THEN φ is LL. Ahead(A). * IF Efo is SL and |Ep | is Close THEN φ is LH. * IF Efo is A and |Ep | is Close THEN φ is Z. SideRight(SR).5. π] range that indicate the relative heading toward the desired orientation: FrontLeft(FL). It includes two groups of rules which used to modify position (PM) and orientation (OM) in reasoning system. Output variable * φ: an output variable which represents wheel steering coefficient.2. SideLeft(SL).2 Orientation error control Input variable * Efo : an input variable that reprsents the angle between sub-goal orientation θi and robot’s main axis Hc . It is associated with an five term set of fuzzy sets defined over the [−π.28 CHAPTER 4. PATH FOLLOWING USING FUZZY LOGIC 4. FrontRight(FR). * IF Efo is FR and |Ep | is Close THEN φ is RL. * IF Efo is SR and |Ep | is Close THEN φ is RH.2.6. 4. .3 The structure of the fuzzy controller The fuzzy controller structure is illustrated in Figure 4. The membership functions of input and output variables are shown in figure 4.

5 1 . .5 0 0. DESIGN OF THE FUZZY CONTROLLER 29 m Eo / E fo SR m EP SL C los e Far FR A FL E . 5 1.60 -3 0 -1 5 -1 0 0 10 15 (A) 30 60 fo / E o (° ) 0 2 4 E p (m ) mf RH RL Z LL LH mV Slow Fa st -1 .5: The input and output membership functions used in the path following controller.4.0 V (m/ s) Figure 4.0 f (rad ) 0 0.2.0 .0.

30 CHAPTER 4.6: The structure of the fuzzy controllers. . PATH FOLLOWING USING FUZZY LOGIC Fuzzy controller Ep PM V Eo f1 f OM f2 E fo Figure 4.

simple positioning is implemented on a car-like kinematic model.1). which have different functions such as path panning and localization for robots.1) 31 . It contains various drivers. In this test. Player is a network sever for robot control. We used the 2D robot simulator Stage(version3. the minimum radius of turning is given by equation (5.33]. It receives instructions from Player and moves a simulated robot in a simulated world. The most important part of path following driver is the fuzzy controller. and all the points inside the circle. 5. 0. The driver is written in C++ language and running in Ubuntu8. and the size of the built map is [30.Chapter 5 Experiments and evaluation We develop a Player driver to implement our controller. y) coordinates of the robot and whose radius is rmin .44.1) to simulate our robot. The structure of the Player is shown in Figure 5. Drivers can send and receive information from Player by interfaces.1.0. For a car-like robot. “path following driver” is applied to control a simulated robot to follow continuous path. Interfaces specify the Player syntax and semantics of how the drivers and Player interact. a constant threshold value is used to choose the sub-goal points on the generated path. we fix the threshold of distance between the robot and that point to be at least rmin . it directly communicates with Stage to control the similated robot. The size of robot is [0.1. The driver supports the position2D interface in order to read new positions for the robot’s motors. are not accessible directly using just one combination of translation and rotation velocities. that passes by the (x.1 Implementation As mentioned before in chapter 4. rmin = l tan(φmax ) (5. to choose a goal point on the path. Stage is a plugin for Player.04. In this Player. Therefore. 30] in meters.

2. the original waypoints are (4.5m to set the tolerance of the sub-goal point a little bit larger than rmin .4. less orientation error would happen and the robot moves more stable. −pi/2). For that reason. (4. Therefore.6.0. The dash-dot line shows the original path. If the robot failed to follow the path. −3pi/4). In Figure 5.4.0.3. 3pi/4). the robot will always go forward towards the subgoal point. If we use a threshold of 0. 0). pi/4). 5. (8.the robot always goes to the closest point on the path.0.0. pi/2).0. the solid track is not far from the original path compares with the dotted one. (12. In the circle path.1: The connection between the Player driver and the simulated robot. 0). (7.32 CHAPTER 5.0. and the motion stops when arriving at the start point.0. 2.0. Setting different thresholds leads to different results. (10. 4.0. −pi/4). 0).0.0. pi/4). 0). In the "eight" path. 4. the solid lines show the tri- . 6.0.6.0. (7. The first path is generated by five oriented waypoints. −pi). we choose to set 0. 5. EXPERIMENTS AND EVALUATION Player Path following Driver Position2d Fuzzy Controller Position2d Smooth-path generator Stage simulated robot Figure 5. 4.4.0.0. (6. and the steering angle of the robot would probably be perpendicular to the sub-goal point and the orientation of robot couldn’t be tuned in time. As Figure 5.0. the configuration of the robot on the waypoints are (4.6.6. (8.0. 4. we test the path following controller with different paths under various speeds. ). the robot moves from the center of the "eight" path which is located at the point (4.4. (6. (6. The reason is when we set the threshold to zero. 3. 0). (4.0.0. 3.2 shows. 3. 6. The robot motion should begin and stop at the first waypoint.0.5m as the threshold value in our simulated experiments. the robot always tries to go to the closest point once again. 2. The robot should start moving from the first waypoint and follow the generated path as close as possible.

5 4 5 6 7 8 9 10 11 12 13 Figure 5.2: The results under different thresholds.6 3.2 4 3.5m while the dotted line is obtained by setting the threshold to 0m .The dash-dot line represents the path generated by the given waypoints.8 3.4 3.4 4.5.1. The solid line is the track followed by the simulated robot by setting distance threshold to 0.8 2.2 3 2.6 original path threshold=0 threshold=0. IMPLEMENTATION 33 4.

When the derivative is zero. (xr . Gn+1 = Gn − f (Gn ) f (Gn ) (5. we try to compare the position of the robot with the closest point on the original path. get the tangent line of this point and calculate the x-intercept. we refine the guess with the Newton. we approximate the derivative by calculating the average value of two slopes of nearby points.4) where i is the index of the spline segments. the initial guess is determined by detecting the distance between the current position and each point on the original path (the quantity of the points on the original path depend on the B-spline parameter increment).2) Here we use Newton-Rhapson to solve the minimization problem.2 Newton-Rhapson method For evaluating the results of the proposed path following controller. EXPERIMENTS AND EVALUATION als of path following motions with different speeds. 3. they are 1. one before and one after the initial point G0 along the spline as G0 + α and G0 − α. we get a rough guess of the closest point. The iteration becomes. we sample two additional points. Then this x-intercept is treated as a better approximation of the function root and the method is iterated until the accurate value is found.34 CHAPTER 5. Newton-Rhapson is a method for finding continuous better approximations to the zeroes of a real-valued function [28]. we are searching for the minimum of a point to spline distance function.3) In my work. Second. In Figure 5. we follow two steps: First.0m/s. we analyze the performance of the controller by looking at the errors in position and orientation of the robot with respect to the original path. The idea of the method is to use one initial guess which is close to the true root. 0 t 1. the distance from each of the .0m/s. In other words. yr ) is the poistion of the robot. We take the point with shortest distance as the initial guess. For this matter. (xi . the function is at minimum or maximum value.0m/s respectively.Rhapson method applied to a function that gives the distance from the robot to a point evaluated on the path. In this thesis. Since it is hard to calculate the derivative of the distance function. This means that we have to find for each point of the resulting path (the trace of the position of the robot) the reference point on the original path. The iteration function is xn+1 = xn − f(xn ) f (xn ) (5. yi ) are the points of the spline in segment i.4. 0 i m (5. 5. The distance function in this case is given by Gt = (xi (t) − xr )2 + (yi (t) − yr )2 . 2.

0m/s 12 10 6 8 6 4 2 4 2 2 4 6 8 10 12 2 4 6 8 10 8 6 4 Original path v=3.0m/s .2.0m/s 2 4 6 8 10 8 6 8 6 4 2 2 4 6 8 10 12 4 2 2 4 6 8 (a) Path following by setting speed to 1.0m/s 2 4 6 8 10 8 (b) Path following by setting speed to 2.5.0m/s 12 10 10 8 6 4 2 Original path v=2.0m/s 2 2 4 6 8 10 (c) Path following by setting speed to 3. NEWTON-RHAPSON METHOD 12 10 6 8 6 4 2 2 4 6 8 10 12 4 2 2 4 6 8 35 8 10 8 6 4 2 Original path v=1.

The sharper the curvature is. The . Then we calculate f (G0 ) by.5 shows the position errors for the different paths. The errors periodically oscillate up and down around an average value. we can see that under different speeds.) three points to current position is easy to calculate. From the three figures above. we implement Newton-Rhapson method to get the next initial guess.a G0 G X Figure 5. EXPERIMENTS AND EVALUATION Y f (G ) R f (G0 . f1 (G0 ) = f(G0 + α) − f(G0 ) |α| f(G0 ) − f(G0 − α) f2 (G0 ) = |α| f (G0 ) + f2 (G0 ) f (G0 ) = 1 2 (5.4: Using Newton-Rhapson method to find the closest point on the path to the robot.3 Position errors and orientation errors analyze Figure 5. G0 + α and G0 − α are two nearby points of G0 where α is a small vector.6) Finally. the bigger the position error is.a ) G0 + a f (G0 ) f (G0 + a ) G0 .(f(Gn ) is a function that represents the distances between the robot and the points on the path.5) we calculate f (G0 ) by.36 CHAPTER 5. We run this process 10 times to approach the acceptable point. 5. the cycles and trends of error variation are similar.G0 is a rough guess of the closest point. f (G0 ) = f1 (G0 ) − f2 (G0 ) |α| (5.

15 0.08 0.01 0 v=1.05 0.2 y(m) 0.05 0 0 5 10 15 20 t(s) 25 30 35 40 45 (c) Figure 5.07 0.0m/s v=2. .02 0. where the x axis represents time in seconts.25 v=1.0m/s v=3.15 y(m) 0.06 0. POSITION ERRORS AND ORIENTATION ERRORS ANALYZE Position errors of wave path following 0.03 0.5: The position errors under different speeds for three types of paths.3.2 0.1 0.1 0.0m/s v=3.09 0.04 0.35 v=1.0m/s y(m) 0 5 10 15 t(s) 20 25 30 (b) Position errors of "eight" path following 0.5.0m/s v=2.0m/s 37 0.3 0.0m/s v=3.0m/s v=2.25 0.05 0 0 2 4 6 8 10 t(s) 12 14 16 18 20 (a) Position errors of circle path following 0.0m/s 0.

0m/s.3587 0.6 shows the orientation errors between the robot and the closest point on the path for each sampling time increment(x axis indicates the change of the time).6b and 5.26m. Figure 5.0m/s 2.0609 Avg(Ep (m)) 2.0703 0.6a.1320 0.0m/s.0m/s 0. The fluctuation of the dashed line is below 0. These oscillations seem to happen when the spline curvature is big.3695 0. The orientation variation is close to each other under different speeds. Since both position and orientation errors are oscillating in a reasonable area.6a.0m/s 3. the dotted line represents the orientation errors that fluctuates from 0 to 1 (rad) during 19.2302 0. the solid line shows the orientation errors oscillated between 0 and 0.0m/s 0. The table below indicates the average position and orientation errors under different speeds for three types of path.2427 0.0 seconds.0547 0.2233 Table 5. the path following driver is working fairly well.0m/s 3.1132 0.38 CHAPTER 5. It is clear that these results can be improved by tuning the fuzzy rules. It proves that the robot follows the paths in good way.1: The average position and orientation errors of the different paths under different speeds.5 seconds with speed 1.9 (rad) during 10. we can find that the range of the three different types of lines are even more closer to each other comparing with Figure 5.7 radian during 7.0441 0. and maybe adding more rules to have a finer coverage of the errors in distance and orientation.1058 0. From Figure 5. EXPERIMENTS AND EVALUATION Errors Speed Wave path Circle path "Eight" path 1.0 seconds with speed 2.0827 Avg(Eo (rad)) 1. .0m/s 0.2516 0. In the Figure 5.6c.3529 0.2179 0. maximum error of three paths is lower than 0.2386 0.0630 0.

3 0. .8 0.2 0.0m/s v=2.7 0.6 0.6: The orientation errors under different speeds for three types of paths.0m/s v=3.2 0.15 v=1.0m/s 0 5 10 15 t(s) 20 25 30 0.0m/s v=2.7 0.2 0.3 0.5.3 0.1 0 v=1.6 y(rad) 0.5 0.9 0.9 0. where the x axis represents time in seconts.0m/s 39 0 2 4 6 8 10 t(s) 12 14 16 18 20 (a) Orientation errors of circle path following 0.1 0.0m/s v=3.0m/s v=3.25 y(rad) 0.3.4 0.8 0.0m/s v=2.35 0.0m/s y(rad) 0 5 10 15 20 t(s) 25 30 35 40 45 (c) Figure 5.5 0.05 (b) Orientation errors of "eight" path following 0.4 0.4 0. POSITION ERRORS AND ORIENTATION ERRORS ANALYZE Orientation errors of wave path following 1 0.1 0 v=1.

.

it is possible to get an acceptable path following behavior. 6. these are many possible other steps that can be taken to improve our controller. by moving these additional points away or towards the waypoints. Additional control points are added along the orientation of control points. The generation of the B-splines takes into account possible collisions with nearby obstacles as well as the kinematic constraints of the vehicle that is intended to follow the continuous path. The result of the simulation experiments show that with a minimal set of rules. Thirdly. in the thesis we only did experiments to follow paths. the controller can be extended to react to moving and static objects by adding more behaviors for that matter. the curvature of spline is modified to fulfill the steering constrain of car-like robot and to avoid the static obstacles. The thesis has also presented a way of generating continuous path from a set of oriented waypoints. Secondly. one can improve the controller by considering more rules that cover different situations of how the robot pose is with respect to the original path. a future work can be testing and tuning the performance of the controller to follow trajectories at different speeds.1 Summary This thesis has presented an implementation of a fuzzy-logic-based controller for following continuous paths. Therefore. We expect that the controller to be modified by 41 . Firstly.2 Further work The work presented in this thesis can be considered as an initial step towards realizing a robust path-following controller for car-like robots. which are a flexible tool used for geometric modeling.Chapter 6 Conclusions 6. Such paths were generated using uniform cubic Bsplines. The controller was implemented a simulated robot through the robot middle ware "Player".

42 CHAPTER 6. . CONCLUSIONS adding more output sets to be able to cope with the change in the reference point of the trajectory. Another interesting possible future work would be to port and test the controller on a real mobile robot.

1995. pages 25–26.) [5] Philippe Garnier. Lilienthal.. CA. Richard T. Björn Åstrand. Gerkey. The player/stage project: Tools for multi-robot and distributed sensor systems. and Andrew Howard. April 2008. (Cited on page 6. 34:1–22. In ION National Technical Meeting. Viguria. and A. (Cited on page 1. Vaughan.) [2] Abdelbaki Bouguerra. Garnier. In Proceedings of the European Conference on Mobile Robots (ECMR). IJCAI Press. (Cited on page 10. 2009. 56(4):360–372. Henrik Andreasson. (Cited on pages 5 and 16. ION NTM 2007.) 43 . Syst.) [6] Brian P. 2007. A.) [7] F. Ollero. H. and Christian Laugier. Cuesta. In In Proceedings of the 11th International Conference on Advanced Robotics.) [3] J. (Cited on page 3. pages 317–323. An hybrid motion controller for a real car-like robot evolving in a multi-vehicle environment. Achim J. (Cited on page 10.References [1] Jacky Baltes and Yuming Lin. Robot. Manipulating b-spline based paths for obstacle avoidance in autonomous ground vehicles. Cyril Novales. pages 162–173. Grenoble Cedex. 2000. Path-tracking control of non-holonomic car-like robot with reinforcement learning. In Working notes of the IJCAI’99 Third International Workshop on Robocup. Elkaim. Connors and G. San Diego. 1997. Auton. and Thorsteinn Rögnvaldsson. Fraichard and Ph. USA. F. pages 91–96.) [4] Th. (Cited on page 11. Continuous curvature path generation based on b-spline curves for parking manoeuvres. Fuzzy control to drive car-like vehicles. 2003. Robotics and Autonomous Systems. Gómez-Bravo. Malta: A system of multiple autonomous trucks for load transportation.

Technical report. James F. S. 2010. Prentice-Hall. and Gaurav S. and Claude Samson. (Cited on page 10. and 23. 1997. and Bernardo Wagner. Ismael Alcalá. January 2007. 9(11):1209 – 1214. Comput. Camacho". Mobile robot path tracking using a robust pid controller.-Aided Eng. (Cited on page 8.. 13. Hwang. (Cited on page 8. Montgomery. 1997.. R. and Eduardo F. Giuseppe Oriolo. In in IEEE International Symposium on Computational Intelligence in Robotics and Automation. volume 5.) [10] Matthias Hentschel. Technical report.) [16] Fares Boudjema Noureddine Ouadah. 14(1):3–14. A hybrid feedback controller for car-like robots . Lin. Neuro-fuzzy and soft computing: a computational approach to learning and machine intelligence. Oliver Wulf.) . Planar spline trajectory following for an autonomous helicopter. Kwon. Arkin. 2008. Inc. 2001. (Cited on page 11. Fast proximity queries with swept sphere volumes. Control Engineering Practice.) [17] P Venkata Subba Reddy. 2002.) [18] Eric Ronco and Peter J. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems. Lamine Ourak. 1999. Car-like mobile robot oriented positioning by fuzzy controllers. International Journal of Robotics and Autonomous Systems. Upper Saddle River. (Cited on page 19. Ming C. 39:73–86. (Cited on page 10. Juan Gómez-Ortega. H. (Cited on page 6. Fuzzy modeling and natural language processing for panini´ s sanskrit grammar.) [13] Eric Larsen.) [15] Julio E. Normey-Rico. (Cited on pages 8 and 9. Gawthrop. 1(1):99–101.44 REFERENCES [8] Dongbing Gu and Huosheng Hu. (Cited on pages 12.) [9] Kale Harbick. 1997.) [14] Alessandro De Luca. C. Neural networks for modelling and control. Journal of Computer Science and Engineering. 2001. Stefan Gottschalk.combining reactive obstacle avoidance and global replanning. and Dinesh Manocha.) [12] Jyh-Shing Roger Jang and Chuen-Tsai Sun. Alessandro De. (Cited on page 8. and D. Feedback control of a nonholonomic car-like robot. 2003. Sukhatme.) [11] J. pages 237–242. USA. Integr. Mobile robots at your fingertip: Bezier curve on-line trajectory generation for supervisory control. (Cited on page 7. Neural predictive control for a carlike mobile robot. NJ.

2000. Structure identification of fuzzy model.) [22] R. Pittsburgh. (Cited on page 34. Adaptive Computation and Machine Learning. 1998. SIAM Rev. September 1989. Reinforcement Learning: An Introduction. Koolio: Path planning using reinforcement learning on a real robot platform. Fuzzy Sets Syst. (Cited on page 9. and Sanjay Krishnankutty.) [20] Dong Hun Shin and Sanjiv Singh. (Cited on page 6. 2010. Jiri Kotzian. PA. In University of Florida. Arthur C Sanderson.) .. Motion planning for nonholonomic vehicles: An introduction. (Cited on pages 10 and 11. Mamdani’s fuzzy inference emathteacher: a tutorial for active learning. Trans. editors. Historical development of the newton-raphson method. 2010. Jun. 2006. 37(4):531–551. Triggs. Zamstein. Information Sciences.) [23] B. (Cited on pages 13 and 22. Sutton and A. May 2008.) [30] Lavi M. 1975.) [26] Lee Weiss.) [27] T. December 1995. Stablization of an inverted pendulum by a high-speed fuzzy logic controller hardware system. Neuman. October 1988. 8(3):199–249. pages 25–26. Boca Raton. Robotics Institute. Ypma. Path planning and tracking for robots based on cubic hermite splines in real-time.) [31] Ali Zilouchian and Mohammad Jamshidi. pages 662 – 668. Sep. pages 1–8. In Proceedings of the 1985 IEEE International Conference on Robotics and Automation (ICRA ’85). Kang. (Cited on page 2.. 1993. volume 2.P. W. The concept of a linguistic variable and its application to approximate reasoning. USA. CRC Press. Fuzzy Sets Syst. (Cited on page 6. Zadeh. March 1985. T. (Cited on page 10. Inc. Carmen Torres-Blanc. In ETFA. Technical Report CMU-RI-TR-90-31. Path generation for robot vehicles using composite clothoid segments.. Sugeno and G. Intelligent Control Systems Using Soft Computing Methodologies. (Cited on page 8. Dynamic visual servo control of robots: An adaptive image-based approach.. Yamakawa.) [25] Jiajun Wang.) [24] Petr Wagner. on Comp. and Viktor Michna.) [29] L. December 1990. Gloria Sánchez-Torrubia. (Cited on page 2.. Jan Kordas.G. and C. 32(2):161–180.) [21] M.REFERENCES 45 [19] M. Mit Press. (Cited on page 2. (Cited on page 10. 7(5):363–374. Barto.) [28] Tjalling J. 1st edition. Nonlinear control strategies research of nonholonomic control systems. (Cited on page 13. FL. 28(1):15–33.S.