Programming a Real Self-Driving Car

Welcome to Scorpion Drive's capstone project for the Udacity Self-Driving Car Engineer Nanodegree Program: Programming a Real Self-Driving Car. This was the only project that gave students the opportunity to work as a team. The Scorpion Drive team consisted of five members from two continents and four countries: Canada, the United States (California and Massachusetts), the Dominican Republic and the very small country of North Macedonia.

Name GitHub Location Task
Kiril Cvetkov (team lead) @kirilcvetkov92 Skopje, Macedonia Traffic Light Detector and Waypoint Publishing
Ronald Evans @rons-git Cape Cod, MA, U.S. DBW Node, Twist Controller
Pavel Simo @pavelsimo Dominican Republic DBW Node, Twist Controller
Anam Yunus @anammy Toronto, ON, Canada Waypoint Updater Partial/Full
Tseng Hui Ko @kevinko1788 Los Angeles, CA, U.S. Waypoint Updater Partial/Full

Project Specification

The submitted code works successfuly to navigate the car around the simulator track:

  • The vehicle runs safely and completes the entire course (7KM),

  • The vehicle accurately detects the illuminated color of all traffic lights,

  • The vehicle stops when traffic lights are red or yellow and proceeds when traffic lights are green.

General ROS Architecture

Responsibilities

Project Repository

The capstone's project repository is presented below. For background information on this project, see the introduction here.

Pretrained Model Weights

Installations

Use one of the two installation options, either native or docker installation.

Native Installation

  • Be sure that your workstation is running Ubuntu 16.04 Xenial Xerus or Ubuntu 14.04 Trusty Tahir. Ubuntu downloads can be found here.

  • If using a Virtual Machine to install Ubuntu, use the following configuration as a minimum:

    • 2 CPU
    • 2 GB system memory
    • 25 GB of free hard drive space

    The Udacity provided virtual machine has ROS and Dataspeed DBW already installed, so you can skip the next two steps if you are using this.

  • Follow these instructions to install ROS

  • Dataspeed DBW

  • Download the Udacity Simulator.

Docker Installation

Install Docker

Build the docker container

docker build . -t capstone

Run the docker file

docker run -p 4567:4567 -v $PWD:/capstone -v /tmp/log:/root/.ros/ --rm -it capstone

Port Forwarding

To set up port forwarding, please refer to the instructions from term 2

Usage

  1. Clone the project repository
git clone https://github.com/udacity/CarND-Capstone.git
  1. Install python dependencies
cd CarND-Capstone
pip install -r requirements.txt
  1. Make and run styx
cd ros
catkin_make
source devel/setup.sh
roslaunch launch/styx.launch
  1. Run the simulator

Real world testing

  1. Download the training bag that was recorded on the Udacity self-driving car.
  2. Unzip the file
unzip traffic_light_bag_file.zip
  1. Play the bag file
rosbag play -l traffic_light_bag_file/traffic_light_training.bag
  1. Launch your project in site mode
cd CarND-Capstone/ros
roslaunch launch/site.launch
  1. Confirm that traffic light detection works on real life images