Capstone project of the Udacity Self-Driving Car Nanodegree: Programming a Real Self-Driving Car.
The following is a system architecture diagram showing the ROS nodes and topics used in the project.
Since we know the locations of the traffic lights and the vechile, we can reduce the classification problem to transformation and detection problem. As color is easier to detect in HSV space and in this use case, red light is important, having two different ranges in the HSV space. As we want to be sensitive to red light, I include both ranges in the the mask. Further improvements can be made when dealing with unknown locations and complex data by applying Deep NN solutions.
Waypoint updater updates 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 generate stop trajectory considering vehicle's deacceleration limits.
The longitudinal target velocity was set in waypoint_updater
node. This node determines the target yaw_rate to keep the lane by using pure-pursuit algorithm.
This node calculates throttle, brake and steering angle to follow longitudinal and lateral trajectory simultaneously. This is achieved using a PID controller to calculate throttle and brake based on the differences between the current velocity and the target velocity. The PID controller is based on cross-track error (cte) to calculate appropriate steering command.
Name | |
---|---|
Raunak Bhandari | ronniebhase@gmail.com |