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. I used fine-tuned mobilenet-ssd_v2 to detect traffic lights.
- train: include training config file
- ros/src/tl_detector/frozen_graph : trained frozen graph(fine-tuned ssd_mobilenet_v2_coco)
Please use one of the two installation options, either native or docker 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 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
- ROS Kinetic if you have Ubuntu 16.04.
- ROS Indigo if you have Ubuntu 14.04.
-
- Use this option to install the SDK on a workstation that already has ROS installed: One Line SDK Install (binary)
-
Download the Udacity Simulator.
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
To set up port forwarding, please refer to the instructions from term 2
- Clone the project repository
git clone https://github.com/tanutarou/CarND-Capstone
- Install python dependencies
cd CarND-Capstone
pip install -r requirements.txt # IMPORTANT: I used tensorflow-gpu1.9
- Make and run styx
cd ros
catkin_make
source devel/setup.sh
roslaunch launch/styx.launch
- Run the simulator
- pretrained model : I used
ssd_mobilenet_v2_coco
as pretrained model from here - dataset: https://github.com/alex-lechner/Traffic-Light-Classification#1-the-lazy-approach
- train-script: I used this tensorflow offical train script and config file(
train/ssd_mobilenet_v2_coco.config
) for fine-tuning