CNIC Information System with Pakdata Cf In Pakistan
Slides SDC Controls
1. Introduction to a self-driving car:
Vehicle Feedback Control
Punnu Phairatt, PhD
Self-Driving Car Engineer
1
Parkopedia is the global leader in
digital parking services
2. SYSTEM DESIGN ARCHITECTURE
Idealised SDC stack
Sensors
Perception:
Localisation
Perception:
Detection
Decision
Motion Planning:
(Local) Planner
Mission Planning:
(Global) Planner
Motion Planning:
Follower
Safety
Stop
User
Input
Motion Planning:
Control
Landmarks
Pose, Speed
Scene data:
Point Cloud
Image RGB
Scene data:
Image RGB
Odometry:
IMU
Encoders
Location/State of:
Live obstacles/
Traffic (lights)
Order command Stop command
Navigation
command
(see Driving
task)
Lanes
(Start/Goal)
Trajectory
(section)
Speed
(linear, angular)
Steering/Throttle
Scene
understanding
Lane
structure
Traffic rules
(live+offline)
Giving me data
Where am I?
What’s around me? What am I doing next? Where am I going next? Steering/Throttle
Emergency
Localisation
Perception Decision Navigation ControlSensor
Map
Map
4. 01 Feedback Control
General Examples
Inverted Pendulum Drone Water Tank
Objective: Stay vertical
Control input: Push/Pull velocity
Objective: Altitude hold
Control input: Angular velocities
Objective: Maintain water setpoint
Control input: Valve opener
5. 02 PID Basic Concept
Feedback Loop
Desired State
(Target)
Measured State
(Actual)
Error (level) Control Signal
Target
Signal
Actual
10. 04 Implementing PID on SDC
Approach 2: Pure Pursuit
x,y
Vehicle x,y
Path
(Y)
(X)
l
x d
r
y
d² + y² = r²
Key Summary [1]
● A method of geometrically determining the
curvature that will drive the vehicle to a
chosen path point, termed the goal point
● Computes the angular velocity command
that moves the robot from its current position
to reach some look-ahead point in front of
the robot.
● The linear velocity is assumed constant,
hence you can change the linear velocity of
the robot at any point.
● The algorithm then moves the look-ahead
point on the path based on the current
position of the robot until the last point of the
path.
● The look ahead distance is how far along the
path the robot should look from the current
location to compute the angular velocity
commands
● Tuning l (lookahead) for a good performance
e.g. ω = γ * velocity
wp
Goal point
[1] https://uk.mathworks.com/help/robotics/ug/pure-pursuit-controller.html]
[2] R. Craig Coulter, "Implementation of the Pure Pursuit Path Tracking Algorithm"
[2]
11. 04 Implementing PID on SDC
Pure Pursuit Velocity Control
speed
error
target ω
target v
current v
Filtering Steering model
Linear velocity to Throttle
Angular velocity to Steering
current ω error steering
throttle
f(wheel base, ratio, error)
current v
e.g gain * ---------------------
target v * Δω
12. 04 Implementing PID on SDC
Kp/Kd/Ki Tuning
Manual PID tuning in 4 Steps
Set Kp, Kd, Ki = 0 Increase Kp until a car
oscillating steadily
Increase Kd until the
oscillation go away or
minimal
Increase Ki to reduce the
set point error (but not too
much that makes
overshooting)
* OR Parameter search: Twiddle
14. 06 PID Limitations
System Delay
System delay Let imagine driving a boat….
It takes some seconds for a steering to take effect
OK for a slow boat but
is a serious problem
on a car
Response after 10 ms
Command issued T= 0