Automatic Steering Methods for Autonomous
Automobile Path Tracking
Jarrod M. Snider
CMU-RI-TR-09-08
February 2009
Robotics Institute
Carnegie Mellon University
Pittsburgh, Pennsylvania
c Carnegie Mellon University
Abstract
This research derives, implements, tunes and compares selected path tracking methods for controlling a car-like
robot along a predetermined path. The scope includes commonly used methods found in practice as well as some
theoretical methods found in various literature from other areas of research. This work reviews literature and identifies
important path tracking models and control algorithms from the vast background and resources. This paper augments
the literature with a comprehensive collection of important path tracking ideas, a guide to their implementations and,
most importantly, an independent and realistic comparison of the performance of these various approaches. This
document does not catalog all of the work in vehicle modeling and control; only a selection that is perceived to be
important ideas when considering practical system identification, ease of implementation/tuning and computational
efficiency. There are several other methods that meet this criteria, however they are deemed similar to one or more of
the approaches presented and are not included. The performance results, analysis and comparison of tracking methods
ultimately reveal that none of the approaches work well in all applications and that they have some complementary
characteristics. These complementary characteristics lead to an idea that a combination of methods may be useful for
more general applications. Additionally, applications for which the methods in this paper do not provide adequate
solutions are identified.
II
Acknowledgements
This work would not have been possible without the support, motivation and encouragement of Dr. Chris Urmson,
under whose supervision I chose this area of research. I would like to acknowledge the advice and guidance of Dr.
William ”Red” Whittaker, whom never ceases to amaze and inspire me. Special thanks go to Tugrul Galatali, whose
knowledge and assistance was instrumental in the success of this research and paper.
I acknowledge Mechanical Simulation for their generous support and discount of CarSim. Without CarSim, quality
analysis and comparison of tracking methods may not have been possible.
I would also like to thank the members of my family, especially my wife, Amy, and my son Xavier for supporting
and encouraging me in everything I do.
III
Contents
1 Introduction
1.1 Experimental Design . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
1.1.1 Lane Change Course . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
1.1.2
Figure Eight Course
. . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
1.1.3 Road Course . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
2 Geometric Path Tracking
2.1 Geometric Vehicle Model . . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
2.2 Pure Pursuit . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
2.2.1 Tuning the Pure Pursuit Controller . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
2.3 Stanley Method . . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
2.3.1 Tuning the Stanley Controller
. .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3 Path Tracking Using a Kinematic Model
3.1 Kinematic Bicycle Model . . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3.1.1
Path Coordinates . . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3.2 Kinematic Controller
. .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3.2.1 Chained Form . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3.2.2
Smooth Time-Varying Feedback Control
.
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3.2.3
Input Scaling . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
3.2.4 Tuning the Kinematic Controller .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4 Path Tracking Control Using a Dynamic Model
4.1 Dynamic Vehicle Model
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.1.1 Linearized Dynamic Bicycle Model
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.1.2
Path Coordinates . . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.1.3 Model Parameter Identification . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.2 Optimal Control . . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.2.1 Tuning the Optimal Controller . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.3 Optimal Control with Feed Forward Term . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.3.1 Tuning the Optimal Controller with Feed Forward Term . . .
. . . . .
. . . . .
. . . .
. . .
IV
1
3
3
4
5
8
8
9
10
14
15
18
18
20
21
22
23
24
25
28
29
30
31
33
36
38
41
44
4.4 Optimal Preview Control
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
4.4.1 Tuning the Optimal Preview Controller
. .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
5 Performance Comparison
5.1 Tracking Results
. . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
6 Conclusions and Future Work
46
49
61
61
65
V
List of Figures
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sandstorm . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Stanley . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Boss .
. . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Screen shot from a CarSim animation . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Lane Change Course . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Figure Eight Course . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Road Course . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Velocity profiles used on the Road Course . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Geometric Bicycle Model . . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Pure Pursuit geometry . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Pure Pursuit at multiple speeds and various gains on the lane change course . .
. . . . .
. . . .
. . .
Pure Pursuit at multiple speeds and various gains on the figure eight course
. .
. . . . .
. . . .
. . .
Pure Pursuit at multiple velocity profiles and various gains on the road course .
. . . . .
. . . .
. . .
Stanley method geometry . . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Stanley controller at multiple speeds and various gains on the lane change course . . . .
. . . .
. . .
Stanley controller at multiple speeds and various gains on the figure eight course
. . . .
. . . .
. . .
Stanley controller at multiple velocity profiles and various gains on the road course . . .
. . . .
. . .
18 Kinematic bicycle model
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
19 Kinematic bicycle model in path coordinates . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
20 Kinematic controller at multiple speeds and various gains on the lane change course . . .
. . . .
. . .
21 Kinematic controller at multiple speeds and various gains on the figure eight course . . .
. . . .
. . .
22 Kinematic controller at multiple velocity profiles and various gains on the road course . .
. . . .
. . .
23 Dynamic Bicycle Model
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
24 Dynamic Bicycle Model in path coordinates . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
25
26
27
28
29
Example of lateral force tire data .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
Linear approximation of the lateral force tire data .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
LQR controller at multiple speeds and various gains on the lane change course .
. . . . .
. . . .
. . .
LQR controller at multiple speeds and various gains on the figure eight course .
. . . . .
. . . .
. . .
LQR at multiple velocity profiles and various gains on the road course . . . . .
. . . . .
. . . .
. . .
1
1
1
3
4
5
6
7
8
9
11
12
13
14
15
16
17
18
21
26
27
28
29
31
34
34
39
40
41
VI
30
31
32
LQR controller with feed forward term at multiple speeds and various gains on the lane change course
LQR controller with feed forward term at multiple speeds and various gains on the figure eight course
44
45
LQR controller with feed forward term at multiple velocity profiles and various gains on the road course 46
33 Optimal preview controller with 0.5s preview at multiple speeds and various gains on the lane change
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
49
34 Optimal preview controller with 1.0s preview at multiple speeds and various gains on the lane change
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
50
35 Optimal preview controller with 1.5s preview at multiple speeds and various gains on the lane change
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
51
36 Optimal preview controller with 2.0s preview at multiple speeds and various gains on the lane change
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
52
37 Optimal preview controller with 0.5s preview at multiple speeds and various gains on the figure eight
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
53
38 Optimal preview controller with 1.0s preview at multiple speeds and various gains on the figure eight
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
54
39 Optimal preview controller with 1.5s preview at multiple speeds and various gains on the figure eight
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
55
40 Optimal preview controller with 2.0s preview at multiple speeds and various gains on the figure eight
course . . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
41 Optimal preview controller with 0.5s preview at multiple speeds and various gains on the road course
42 Optimal preview controller with 1.0s preview at multiple speeds and various gains on the road course
43 Optimal preview controller with 1.5s preview at multiple speeds and various gains on the road course
44 Optimal preview controller with 2.0s preview at multiple speeds and various gains on the road course
45 Comparison of the tuned controllers on the lane change course . . . .
. . . . .
. . . . .
. . . .
. . .
46 Comparison of the tuned controllers on the figure eight course . . . .
. . . . .
. . . . .
. . . .
. . .
47 Comparison of the tuned controllers on the road course . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
48
Performance comparison table . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . .
56
57
58
59
60
61
62
63
64
VII
1 Introduction
A significant portion of Robotics research involves developing autonomous car-like robots. This research is often
at the forefront of innovation and technology in many areas. However, it is often common practice to use relatively
simple and sometimes naive control strategies and/or system models for vehicle control, even on some well known
and successful autonomous vehicle projects [18, 17, 16, 4].
Figure 1: Sandstorm
Figure 2: Stanley
Figure 3: Boss
Figure 1 is Sandstorm, the autonomous vehicle that placed second in the DARPA Grand Challenge using a very
simple steering control law based on a geometric vehicle model. Figure 2 is Stanley, the autonomous vehicle that
won the DARPA Grand Challenge using an intuitive steering control law based on a simple kinematic vehicle model.
Figure 3 is Boss, the autonomous vehicle that won the DARPA Urban Challenge. Boss uses a much more sophisticated
model predictive control strategy to perform vehicle control. However, a very simple kinematic model of the vehicle,
a time delay and rate limits on steering is all that is included in the optimization of the steering controls. This does
1