Abstract
Simple and efficient geometric controllers, like Pure-Pursuit, have been widely used in various types of autonomous vehicles to solve tracking problems. In this paper, we have developed a new pursuit method, named CF-Pursuit, which has been based on Pure-Pursuit but with certain differences. In CF-Pursuit, in order to reduce fitting errors, we used a clothoid C1 curve to replace the circle employed in Pure-Pursuit. This improvement to the fitting method helps the Pursuit method to decrease tracking errors. As regards the selection of look-ahead distance, we employed a fuzzy system to directly consider the path's curvature. There are three input variables in this fuzzy system, 6
Introduction
An autonomous vehicle can drive by itself with necessary sensors, such as GPS, IMU, cameras, and Lidar. Normally, the process is that the vehicle first detects the environment and positions itself according to these sensors, and then navigates with global and local planner; finally, the vehicle drives by sending the control commands from the path-tracking controller to the executing mechanisms. With consideration to the process described above, we can see that the path-tracking controller is a bridge that connects the upper software and the lower hardware. As far as the regular definition is concerned, we followed the definition of M. Snider [1]: Path tracking refers to a vehicle executing a globally defined geometric path by applying appropriate steering motions that guide the vehicle along that path. A good path-tracking controller minimizes the lateral distance and heading between the vehicle and the defined path. In this paper we will introduce our latest accomplishments in designing a performance geometric path-tracking controller.
Literature Reviews of Path Tracking
Control Theory Controllers
Pan Zhao [3] proposed a adaptive PID controller to track predefined paths. S-J Huang and G-Y Lin [2] proposed a fuzzy controller to help track the path used to finish reverse direction auto-parking maneuvers. Abbas, Muhammad Awais [4] made the MPC controller run online to track a planned path, which had the capability of avoiding obstacles. While these controllers can promise fine accuracy, PID controllers always suffer from the optimization of parameters and overshot in tracking; the fuzzy controllers need more prior knowledge, and MPC will cost more in computational resources to get a better result. Some literature related other elements to improve the tracking performance. Zhenping Sun [26] used the road information and the state of vehicle to optimize the curvature and then calculated the steering output. Braconnier [27] improved the stability of mobile robots in harsh conditions by deriving the tracking law from the kinematic model. The sideslip angles required by model must be estimated online and also the velocity provided by an adaptive and predictive velocity controller. While more variables could optimize the tracking controllers, it also increased the complexity and decreased robustness of the tracking system. Compared with control theory controllers, geometric controllers are more popular in autonomous vehicles.
Geometric Controllers
Geometric controllers are one of the most popular path tracking methods applied in mobile robotics. These controllers exploit geometric relationships between the vehicle and the path, resulting in control law solutions to the path-tracking problem. The Pure-Pursuit controller is the first geometric controller applied in autonomous vehicles and is also the most widely used. Actually, the earliest Pure-Pursuit controllers were used in regard to the problem of a missile pursuing a target [5]; in the Pure-Pursuit course, the missile's direction of velocity is always pointed to the target position. Pure-Pursuit originated from Wallace et al. [7]; although Wallace did not propose the formal Pure-Pursuit, he used the lateral displacement of the road's centerline from the center of the cameras' forward field of view to compute the steering angle of the front wheel of the vehicle. Based on Wallace's method of analysis, Amidi [6] proposed the ‘Pure-Pursuit’ strategy and discussed its application. Coulter [8] detailed the implementation issue of Pure-Pursuit; since then, Pure-Pursuit has been widely applied in indoor [9] and outdoor robots [10, 11].
In addition to applications, some literature also focuses on the stability of Pure-Pursuit. Anibal Ollero [12] analyzed the relationship between the look-ahead distance and stability. We can conclude from [12] that in order to keep the system stable we must choose a look-ahead distance greater than 1 when tracking a straight path; for a constant curvature path, the look-ahead distance should be greater than 1 and will increase along with the curvature and the delay. Murphy [13] focused on the effects of time delays.
Anibal Ollero [14] also employed fuzzy logic to tune the look-ahead distance. MIT proposed a simplified adaptive method that tuned the look-ahead distance with the velocity. The tuning method's parameters were obtained from a number of different experiences [15, 18],
Unlike the above improvements, which did not change the principle of Pure-Pursuit, Jeff Witąŕs method chased a goal point ahead of the vehicle, but used a different method, vector pursuit [16]. As screw theory can be used to describe the instantaneous motion of a moving rigid body relative to a given coordinate system, it can also be used to represent the motion from the current location to the desired position and the orientation on a given path. Jeff Wit also compared the effect of vector pursuit with Pure-Pursuit and follow-the-carrot. Although the result is that the vector pursuit will be more robust and accurate in tracking different shaped paths, these tests are conducted at very low speeds. According to the method mentioned in [16], the computational process of vector pursuit is more complex than Pure-Pursuit, and more parameters need to be tuned if we want to attain good performance. In addition to the current location, another geometric controller, the Stanley method [17], uses orientation information to compute the steering angle. The Stanley method separately considers the heading error and the distance error between points at the center of the front axle and the nearest path point from the center of the front axle. It then transfers the distance to angle metric with a tangent function. The final steering angle comes from adding the result of the two errors. This method helped Stanford to win the DARPAR champion 2006. Jarrod M. Snider took tests using the Stanley method with some simple maneuvers by Carsim, a type of simulation software. While it can maintain good tracking performance, the tracked path must be a smooth path and its robustness is not as good as Pure-Pursuit [1].
In summary, compared with other geometric controllers, Pure-Pursuit demonstrates better robustness and real-time, which is suitable for autonomous vehicles. However, it also suffers from poor accuracy or possible oscillation when adapting constant look-ahead distances. The MIT method argues that changing the look-ahead distance with the command velocity will improve these problems, but this method does not take into consideration the curvature of the path. In this paper, we also want to develop a pursuit method, based on Pure-Pursuit, but we will differ from prior methods in tuning the look-ahead distance and computing the steering angle. We named our method CF-Pursuit: the Pursuit method with a clothoid fitting and a fuzzy controller to tune the look-ahead distance. As a new geometric controller for autonomous vehicles, we will show CF-Pursuit's superior performance by comparing it with other classical path trackers for vehicles, like the MIT method and the Stanley method.
We have arranged this paper as follows. Section II first reviews the autonomous vehicle model. In Section III we will introduce the method of original Pure-Pursuit, MIT, and Stanley method, and then an analysis will follow regarding the geometric method. Section IV proposes CF-Pursuit and several pieces of literature relevant to the fitting methods. In section V, we will show the experience results to compare CF-Pursuit with the MIT method and the Stanley method. Finally, the paper will include conclusions and references.
Robotic vehicle model
Fig. 1 shows the global coordinate system and the local coordinate system the origin of which is located at the center of the rear wheels. We used
where
where the Δ is the steering angle of the front wheel, L is the vehicle's wheelbase,
Actually, Fig. 1 also shows the principle of Pure-Pursuit. When the vehicle turns with a fixed steering front-wheel angle, the vehicle's path will be a circle with an approximately constant radius. Conversely, when you specify a circular path for the vehicle, you can also calculate a steering angle for the vehicle to track the circle. In the next section, we will provide more detail about Pure-Pursuit.

Global coordinate system (
A general method for geometric tracking controllers is to pursue a position ahead of the vehicle with a look-ahead distance, and then calculates using geometric methods to connect this position with the current position of the vehicle. For example, Pure-Pursuit uses a circle curve to fit two positions, and Vector Pursuit uses screw theory.
Pure-Pursuit
The principle of Pure-Pursuit is to calculate the instantaneous curvature of the path that the vehicle intends to generate with the current velocity and heading. We use Fig. 2 to show the detail of Pure-Pursuit.

Geometric explanation of Pure-Pursuit
Combining our own experiences and the original description in [8], we can detail the implementing process of Pure-Pursuit as follows:
Find the current location of the vehicle in the global coordinate system (
Find the closest point on the path to the vehicle, (
Choosing a constant look-ahead distance and then search the goal point (
Transform the goal point to vehicle coordinates (
Calculate the curvature and then acquire the steering angle from Equation (9);
Update the vehicle's position and recycle.
The Stanley method is a path tracking approach used by Stanford University in the DARPA Grand Challenge. The parameters employed in the Stanley method are shown in Fig. 3. This method firstly finds a nearest point (
where θ is the vehicle's heading and θ

Parameters used in the Stanley method
In order to rapidly converge to the defined path, the Stanley method not only considers the heading error, but also transfers the perpendicular error between the vehicle and the path into an angular error in order for the vehicle to quickly intersect with the path.
The MIT method can be seen as a variant of Pure-Pursuit; the definition of variables can be seen in Fig. 4.

Definition of variables. Two shaded rectangles represent the rear tire and the steerable front tire in the bicycle model.
In this method, the original point of local coordinate system is not located at the center of rear wheels; instead it's located at the anchor point. Therefore, the computational method of the steering angle Equation (13) is also different from Pure-Pursuit. According to its analysis, this change will improve stability. Another improvement relates to the look-ahead distance. The look-ahead distance will change with the velocity, the command velocity [15]. The specific tuning mechanism can be obtained using the following expression:
For the geometric controllers applied in vehicle, the geometric relationship between the two positions consists largely of 2-D curves, such circles and polynomials. Therefore, from a geometric point of view, there will be three curves demonstrated from the initial calculation to an actual trajectory of the vehicle. The first is the defined path, the second is the curve representing the relationship between the two positions, and the third is the real path that the vehicle intends to follow. We show this process in Fig. 5. As such, the cross track error

The blue dash line represents the geometric relationship between the starting position to the goal position. The black solid line is the actual path of the vehicle generated when executing the control commands.
Here, we have defined the
Some of the literature has attempted to improve tracking effects by using better fitting methods. Vicent Girbĺęs employed the combination of clothoid curve, line and circle to fit the tracked path [19]. In order to handle any possible fitting failures, the original Pure-Pursuit will be used if a failure is detected. The fitting method for CF-Pursuit is similar to the principle of this paper, but we will argue the necessity of fit using a Continuous-Curvature curve. The success rate is hard to promise when considering four dimensions [6]. Even in [19], Pure-Pursuit was used as an alternative method when it was impossible to converge. On the other hand, the drawback addressed by [19] is the uncomfortable feel that comes from abrupt changes to the heading. According to our experiences, while maintaining continuous curvature is helpful for smoothness of control, it will weaken the fault-tolerance of the whole system. For example, when huge blocks hide the GPS, the location accuracy will be poor and the autonomous vehicle will become lost and will deviate from the defined path. Once the system recovers from a worse situation, out of consideration for safety we need the vehicle to return to a normal course as soon as possible. However, this process may take longer if we consider the curvature continuity, given the possibly enormous gap between the fitting curve and the defined path. In actuality, a sudden change in heading can be caused by many factors, and curvature discontinuity in tracking is just one of them. If we can have tracking errors limited to a narrow range and maintain control over speed, there is a low probability for a sudden change of heading even if you employ a controller that does not consider the curvature continuity. [28] expended [19], besides of the DCC path, [28] also generated a speed profile based on “slow in” and “fast-out” policy to improve the original method in [19]. Nevertheless, [28] did not create any innovation in generating DCC path, so the above mentioned problems still existed. In the CF-Pursuit, we employed the clothoid curve to fit, but without a line and circle. Accordingly, we did not want a continuous curvature curve; instead, we considered the two given positions with signed tangent vectors. In terms of fitting effect, this is better than a circle, but worse than a continuous-curvature curve. Nevertheless, we can guarantee a high success rate when we employ the new calculation method [21]. We also did not need an alternative algorithm based on our tests. On the other hand, the results using clothoid will be used in the later fuzzy system to tune the look-ahead distance. In order to better illustrate this, we must first introduce the clothoid curve.
Clothoid Curve
The general parametric form of a clothoid spiral curve is as follows:
where
In addition to the above constrains, we all want the whole length of curve L to be minimal, allowing us to solve the parameters, θ0, κ and κ from the following nonlinear system [20]:
In this paper, we followed the method proposed by Enrico Bertolazzi and Marco Frego, which provides a robust and fast computational method [21]. Unlike other calculation methods, this new method does not need to split the problem in mutually exclusive cases as the method in [22], and also does not suffer in case of degenerate Hermite data like straight lines or circles. We used an example to explain the benefit of employing clothoid, but not Hermite or other polynomial fitting methods. In this example, we chose two points on a circle with a 10 (m) radius, centered at (0,0), and then we separately employed clothoid and Hermite to fit. We found nearly the same overlap ratio and shape-preserve in the left of Fig. 6. According to the requirement of Equations (9), (10) we needed to calculate the curvature at the present position, which was the starting curvature of the fitting curve. To this example, we found the curvature's curve in the right of Fig. 6. Compared with clothoid, Hermite does not get a constant curvature, and the curvature changes abruptly, but clothoid can almost obtain a constant curvature like a circle.

A comparison between common Hermite and the clothoid fitting
Methods
The selection of
When we tune the look-ahead distance, the most important element is the curvature of the path [8]. Essentially, the look-ahead distance changing with velocity merely reflects its dependence on the curvature of the path. For example, as a simple velocity strategy, decelerating speed indicates the forward path may be curvy, while an acceleration means a straight path. Nevertheless, the curvature of the path cannot be totally represented by the velocity, which can be affected by other traffic elements. As a result, we want to develop a tuning method that can tune the look-ahead distance through the curvature of the path ahead. In order to calculate the curvature of the path ahead, the clothoid method must be employed again for this process. Instead of fitting the whole defined path off-road, we fit it in real-time. We used the maximum curvature of the fitting curve to decide the curving degree of the fitted path. However, we must consider the credibility of employing a characteristic of the fitting curve to represent the fitted curve; great fitting errors may make it distorted. As such, we took two measures to handle this problem. The first was to limit the length of the fitted curve and test to find an optimal maximum length in order to reduce the chance of great fitting errors. The second was that we chose multi-goal points in the defined path to fit, and then used a fuzzy controller to integrate the curvatures obtained from the calculations of the clothoid fitting to decide the specific look-ahead distance.
Fuzzy controller
By far, there is no mature theory or model to define the relationship between the curvature of the defined path and the look-ahead distance. And also there is not a clear definition regarding the degree of curve of the path. What we have now are just the drivers' experiences and some of our own testing experiences. While lots of the accurate control methods can be employed, only the fuzzy method does not require a complete mathematical model of the controlled system. Moreover, fuzzy logic can reason approximately, which is particularly well suited to handle imprecision and uncertainties. In particular, Sugeno and Nishida demonstrated that fuzzy control was capable of handling nonlinear control problems using oral instructions [23]. Lastly, the computational efficiency of fuzzy controllers allows real-time operation which is a critical requirement for the autonomous vehicle.
From a formal point of view, a fuzzy controller consists of a rule base containing the experts' procedural knowledge and a variable base containing the different linguistic values. As regards the experts' procedural knowledge, we obtained two kinds of knowledge: human drivers' experiences and experiences of our tests, which are all listed as follows.
Human Drivers' Experiences:
We will focus on a short distance from the host vehicle and tune the steering wheel finely to avoid the vehicle going off the road when the visible road ahead is curvy.
We will look ahead as far as we can from the host vehicle when we can see the road ahead is straight.
Our Tests' Experiences:
We need to shorten the look-ahead distance when we turn or if the defined path is very curvy.
We need to extend the look-ahead distance when the defined path is not too curvy.
A minimum look-ahead distance 6 meters and maximum 12 meters were tested and found to be proper when controlling the speed of vehicle to be under 30 km/h.
We can approximately define the path curves when the curvature is bigger than 0.1;
We can trust the curvature value in 12 meters ahead if the calculated curvature is very small;
Fuzzy rule base: Neither the human drivers' nor our tests' experiences can be used directly to form the rule base; they require normalization. In addition, they only frame the control process, but not any detail of how to maintain control. Consequently, we need to enrich them. The rule base to tune the look-ahead distance is:
IF 12
F 12
F 12
F 9
F 9
F 9
F 9
F 9
F 9
IF 6
IF 6
IF 6
IF 6
Fuzzy variables: the words in italics are the fuzzy input and output variables, and the words in bold are their associated linguistic values. We chose three
Fuzzy rules: When the curvature in 12 meters is small, we trust that the fitted path within distance of 12 meters is not curvy. This is what rules 1 and 2 represent. When 12
From a functional point of view, the fuzzy reasoning process can be divided into three stages, shown in Fig. 7, fuzzification, inference engine, and defuzzification.

Structure of a fuzzy system
Fuzzification: In this step, current crisp input values are transformed into linguistic or fuzzy values that can be interpreted by the fuzzy compiler. This transformation computes a degree of truth for each of the input fuzzy variable values, depending on the shape of their associated membership functions. We transformed three curvatures into fuzzy values.
Inference engine: The inference engine propagates the matching of the conditions to the conclusions, generating the contribution of each rule to the control action. In our case, Mamdani ¡−
Defuzzification: Defuzzification is the transformation of the output fuzzy values that were generated by applying the inference method into crisp values that could be used to output control intentions. In this instance, we use the center of area (CoA) method, i.e.,
where ω
We have defined the output fuzzy variable membership function shapes using Sugeno ¡−
Therefore, the
Fig. 8 shows the definition of functions for three input variables, each with the four same linguistic labels (small, middle, large, and larger). They depend on the curvatures calculated from three different

Membership function of three input variables, Trapezoid is employed
We also used Matlab to show the rule base in Fig. 9. As you can see from the image, the input variable 6
Platform
We ran a field test to demonstrate that CF-Pursuit will take effect and perform better than the other controllers. The field test was conducted on a free road, which was newly built. The platform we controlled was the autonomous vehicle belonging to Wuhan University,

The fuzzy controller we used Matlab to simulate
Defined Path
In order to make the test less affected, we did not employ too many sensors to support our experience. We used only the GPS and IMU to collect location data to compose a defined path
In the
Compared methods
The geometric controllers updated slowly in recent year, especially the controllers applied in autonomous vehicles. As for compared methods, we choose the MIT and Stanley method, which were popular among the pursuit methods applied in the autonomous vehicles. Another reason to choose them was that both of them were tested in the DARPA and helped the corresponding vehicle obtain a good place. In term of controller's properties, these two methods are both coupled with velocity, and then affected by the control of the velocity, the CF-Pursuit will decouple the velocity in the steering control. The challenge here is that we want to behave better without consideration to velocity, like with the MIT and Stanley methods. With regard to certain unknown and tunable parameters in these two methods, we tried our best to make sure the parameters were optimal so that the uncertainties could be decreased and the algorithm could perform to its true potential.

Left:

Screenshot from Google-Earth: the purple, while and green paths are separately associated with velocity 25–30 km/h, 15–20 km/h, and 5–10 km/h
Unlike high velocity applications, we focused on the curving and middle velocity situation. In actuality, high velocity applications imply that the path is flat. On the other hand, we need to consider the dynamic effects such as side slip when we drive at high speeds, which is difficult for the geometric controllers to apply currently. This paper tries to solve for urban applications, requiring the autonomous vehicle to perform common urban maneuvers like turning left or right, turning around and changing lanes. We have shown the whole velocity profile of applying these three methods in Fig. 12. In order to avoid possible collision with curbs we have to brake the vehicle to slow it down within the ellipses areas. For the MIT method in (

Actual paths with corresponding velocities when applying the MIT method (a), the Stanley method (b), and the CF-Pursuit (c) separately
Another performance we want to compare is the stability of algorithms. Instead of complex measures for some standard parameters, we used the steering angle to reflect stability. The results are shown in Fig. 13. When controlling acceleration and deceleration gradually or maintain a constant speed, the MIT method is the best for stability, and the Stanley method is the worst of the three methods. However, focusing on the green ellipses in Fig. 13(a), an abrupt change in the steering angle has been triggered; the result is a sudden change in the vehicle's heading. This kind of driving behavior is dangerous and uncomfortable for the passengers within the vehicle even if it only happens once. A reasonable interpretation of this is the MIT method only tunes the look-ahead distance with the velocity, but not with the curvature changes in the path. In this example, we could associate a greater than expected velocity when it turns left; as a result, the cross track errors would increase when the path begins to curve (Fig. 14 (a), (d)). Once we manually slow the vehicle to an expected velocity, which would indicate a curvy path ahead, the look-ahead distance is consequently shortened, and then the algorithm would try to compensate for the errors as soon as possible. The final result is a sudden change in the steering angle. Looking at the Stanley method (Fig. 13 (b)), oscillation is a typical characteristic. Unlike the MIT method, the velocity directly acts on the algorithm (Equation (12)). When experiencing this method, we need to consider two problems. The first is that we must handle the issue of zero velocity by letting velocity be equal to one when the velocity is zero. The second is the relationship between parameter

Actual paths with corresponding steering angles when applying the MIT method (a), the Stanley method (b), and the CF-Pursuit (c) separately

Actual paths with corresponding steering angles when applying the MIT method (a), the Stanley method (b), and the CF-Pursuit (c) separately
The CF-Pursuit method makes use of the clothoid fitting method to decrease the fitting errors and designs a fuzzy controller to tune the look-ahead distance. Driving experiences demonstrate that it is a better tracking algorithm in the velocity's robustness, stability and cross track errors. Nevertheless, we also found that it was not as stable as the algorithm that considers velocity while tuning the look-ahead distance when driving on straight path and controlling the velocity properly. As such, integrating the curvature of the path and the velocity together may be an interesting direction for any further research. On the other hand, limiting the length of a fitted path to weaken the effects of the fitting errors may make it impossible to accommodate more complex situations. However, longer distances mean possible greater fitting errors, which also have to be considered in the future.
Footnotes
6.
We would like to acknowledge Jian Zhou, Ling Zheng, Liming Fu, Zhi Lu, Xiaomin Guo, Wei Yang Yuan Guo and Cheng Chen for their contributions in developing the autonomous vehicle. The work described in this paper is supported in part by National High Technology Research and Development Program of China (2012AA101701).
