This is the project repo for the final project of the Udacity Self-Driving Car Nanodegree: Programming a Real Self-Driving Car. For more information about the project, see the project introduction here.
The following is a system architecture diagram showing the ROS nodes and topics used in the project.
For this exercise, i used the test example in the Detection walkthrough tutorial.
The purpose of waypoint updater is to update the target velocity property of each waypoint based on traffic light and obstacle detection data. The target veloicty at normal situdation is given from waypoint_loader node
. If the red light is detected, we genetated stopping trajectory considering vehicle's deceleration limits.
The longitudinal target velocity was set in waypoint_updater node. This node determine the target yawrate
to keep the lane by using pure-pursuit algorithm.
This node finally calculates throttle, brake and steering angle to follow longitudinal and lateral trajectory simultaneously. We used PID controller to calculate throttle and brake based on the difference between the current velocity and the target velocity. We also use PID controller based on cross-track error (cte) to calculate appropriate steering command.
Jude Dike - dikejude49@gmail.com