Real Self-Driving Car
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.
- Team Members
- Installation
- Usage
- Real World Testing
- Work-Arounds
- Final Remarks
Name | |
---|---|
Daniel Hai | dyh.1213@gmail.com |
Yu-Cheng Su | ycsuphy@gmail.com |
Dmitry Yanchenko | dyanchenko@gmail.com |
Ardavan Shafiee | bmbigbang@gmail.com |
Alexander Braun | alexander.n.braun@gmail.com |
-
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.
-
Clone the project repository
bash git clone https://github.com/alex-n-braun/carla.hal.git
-
Install python dependencies
bash cd carla.hal pip install -r requirements.txt
-
Make and run styx
bash cd ros catkin_make source devel/setup.sh roslaunch launch/styx.launch
-
Run the simulator
-
Download training bag that was recorded on the Udacity self-driving car (a bag demonstraing the correct predictions in autonomous mode can be found here)
-
Unzip the file
bash unzip traffic_light_bag_files.zip
-
Play the bag file
bash rosbag play -l traffic_light_bag_files/loop_with_traffic_light.bag
-
Launch your project in site mode
bash cd CarND-Capstone/ros roslaunch launch/site.launch
-
Confirm that traffic light detection works on real life images
if you are experiencing an issue of the car not moving on launch in the current master branch a quick fix is to replace
sio = socketio.Server()
on server.py
with
eventlet.monkey_patch()
sio = socketio.Server(async_mode='eventlet')
Great teamwork! Great fun!