Self-Driving Car Engineer Diary — 11

Andrew Wilkie
3 min readAug 22, 2017

--

Tue, 22/Aug/2017

I’m in the final term (#3) of the course now and have 3 projects in 3 months to complete :
1. Path Planning Project,
2. Elective Project (either Advanced Deep Learning or Functional Safety), and
3. System Integration Project where we split into teams, deploy our code to ‘carla’ (Udacity’s self-driving car) and let it loose on a test track!

I’d love to do both Electives but it’s probably best to put a time-box on this course and stay focused on graduating. Advanced Deep Learning elective wins easily for me.

Path Planning On Highways Project

I found the path planning project challenging, in large part due to fact that we are implementing SAE Level 4 functionality in C++ and the complexity that comes with the interactions required between the various modules.

Climbing the vehicle automation ladder to reach SAE Level 4 : ACC -> PD(C) -> PD(H) -> PD+(H)
Various modules used during path planning process.

Path planning numbered steps from above :
(1) The inputs to Behaviour Planner (at the top) come from the Prediction and Localisation modules output ;
a. Current ‘ego’ car state
b. Predictions
c. Localisation data
d. Map
e. Speed limit

(2) Both Prediction and Localisation get their inputs from Sensor Fusion — data about other traffic around the ego car,
(3) output from the Behaviour Planner aka maneuver recommendation goes directly to the Trajectory Planner,
(4) which also takes input from Prediction (e.g. Hybrid-A* for parking lots, polynomial trajectory generation for low traffic highways) and Localisation,
(5) so it can send smoothed trajectories to the Motion Controller.
(6) Collectively, the interaction between Prediction, Behaviour and Trajectory is called Path Planning.

Transforming ego car Frenet (s, d) to Cartesian (x, y) 2D space and re-aligning car’s heading along x using trig was key.

Simulator Time!

BEHAVIOUR 1 : “Keep safe distance from closest car in front of ego car.”

BEHAVIOUR 2 : “Overtake slower cars, using left lanes.”

BEHAVIOUR 3 : “Overtake slower cars, using right lanes.”

--

--