Skip to content

Self Driving Car Engineer Nanodegree System Integration Capstone Project

License

Notifications You must be signed in to change notification settings

diyjac/SDC-System-Integration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Udacity Self-Driving Car Engineer Nanodegree

Final Project: System Integration

Carla

This is Team Vulture project repo for the final project of the Udacity Self-Driving Car Engineer Nanodegree: Programming a Real Self-Driving Car. The project will require the use of Ubuntu Linux (the operating system of Carla) and a new simulator with integration with the Robotic Operation System or ROS. This project will restrict the driving speed of Carla to ~ 10 MPH for field testing.

NOTE: You will find our development, testing logs and SAFETY NOTES in the REPORT.md file.

WARNING: To maintain integrity of the SDCND Final System Integration Project, the throttle and brake actuation settings in this prepository are NOT what were used in the successful navigation of Carla around the test track. The last Udacity Capstone Project repository merge pulled into this github repository was on September 9, 2017: https://github.com/udacity/CarND-Capstone/commit/140691dada1e659422693007eee48c6d5faca14f. Further merges with upstream repository may render the project in this repository inoperable. The final project results are now static, and no further update requests will be expected nor entertained.

The Team

Team Vulture Mascot

The following are the members of Team Vulture. Artwork for printing our team T-Shirt can be found here.

Name Location LinkedIn Image
Team Lead John Chen Ashburn, VA linkedin.com/in/diyjac John Chen
Rainer Bareiß Stuttgart, Germany linkedin.com/in/rainer-bareiss Rainer Bareiß
Sebastian Trick Karlsruhe, Germany linkedin.com/in/sebastian-trick-500194ab Sebastian Trick
Yuesong Xie Southfield, MI linkedin.com/in/yuesongxie Yuesong Xie
Kunfeng Chen Mountain View, CA linkedin.com/in/kunfengchen Kunfeng Chen

Team Vulture Accomplishments

1. First team to move Carla

Team Vulture First to Move Carla!

2. First team to successfully navigate Carla around the test track and stop appropriately for the lights

Team Vulture First to Successfully Navigate Carla!

3. First team to complete Udacity Self-Driving Car Engineer Nanodegree Final Project

Team Vulture Project Completion

4. Rainer Bareiß Designed and Made Team Vulture T-Shirts!

Kunfeng Team T-Shirt Yuesong Team T-Shirt

5. Team Meeting at IAA 2017 in Frankfurt, Germany.

Team Vulture meeting at IAA 2017, Frankfurt, Germany

6. Team Meeting at Udacity Europe, SDC 2017 Student Dinner with David Silver

Team Meeting at Udacity Europe, SDC 2017 Dinner Udacity SDC European Students 2017

7. Kunfeng Chen and Sebastian Thrun at Udacity Hiring Partner Event 2017 in Mountain View, California

Kunfeng and Sebastian Thrun Hiring Partners

GO VULTURE!

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.

    NOTE: We experienced poor performance using VM, so did not use it for integration and testing.

  • Follow these instructions to install ROS

  • Download the Udacity Simulator v1.2.

    NOTE: If you are installing in native Ubuntu 16.04, the Dataspeed DBW One Line SDK binary install will auto install 4.4.0-92-generic Linux kernel, which will break CUDA and the NVIDIA 375 drivers if you have NVIDIA GPU in your native Ubuntu 16.04 build. This will cause starting the simulator to fail because it can no longer open the OpenGL drivers provided by NVIDIA:

    starting simulator failure image

    To fix this issue, you will have to:

Usage

  1. Clone the project repository
git clone https://github.com/diyjac/SDC-System-Integration.git
cd SDC-System-Integration
  1. OPTIONAL: Verify, List, Switch or Create your own branch in the repository
    • verify current branch
      git status
    • list existing branches
      git branch
    • switch to a different branch
      git checkout <different branch>
    • create new branch from current branch and push to remote repository
      git checkout -b <your branch>
      git push -u origin <your branch>
  2. Install python dependencies
  1. Make and run styx
cd ros
catkin_make
source devel/setup.bash
roslaunch launch/styx.launch
  1. Run the simulator
unzip linux_sys_int.zip
cd linux_sys_int
chmod +x system_integration.x86_64
./system_integration.x86_64
  1. To test grab a raw camera image
rosrun tools grabFrontCameraImage.py ../imgs/sampleout.jpg

./imgs/sampleout.jpg

  1. To dump the waypoints from the /base_waypoints topic
rosrun tools dumpWaypoints.py ../data/simulator_waypoints.csv
  1. To dump the final waypoints from the /final_waypoints topic
rosrun tools dumpFinalWaypoints.py ../data/final_waypoints.csv

./imgs/sim_waypoint_map.png

  1. To view the diagnostics screen in real-time when the integrated system is running
  • NOTE: Requires pygame!
rosrun tools diagScreen.py --screensize 2 --maxhistory 800 --textspacing 75 --fontsize 1.5

./imgs/sdc-t3-sysint-diag-screen.png

  1. To view sample Udacity provided rosbags, convert them to MP4, GIFS or JPG use the following:
  • NOTE: Requires pygame and moviepy!
cd ../tools
python view_rosbag_video_with_objdet.py --dataset <rosbags>
python rosbag_video_2_mp4.py --dataset <rosbags> <path to mp4 file>
python rosbag_video_2_gif.py --dataset <rosbags> <path to gif file>
python rosbag_video_2_jpg.py --dataset <rosbags> '<path to rosbag_%04d.jpg>'

./imgs/just_traffic_light.gif ./imgs/loop_with_traffic_light.gif

Full length MP4 videos of the Udacity provided sample rosbags are available for download:

Samples of jpeg images extracted:

./test_images/loop_with_traffic_light_0283.jpg ./test_images/just_traffic_light_0461.jpg

CSV files with pose and manually updated labels:

  1. Sample training, validation and testing images have been collected and are in data/collections/samples directory. There is a session1.csv file that will provide the features and labels. To collect additional training, validation and testing images for the traffic light classifier, use the autoTLDataCollector.py tool once you have started roslaunch launch/styx.launch and the simulator:
cd SDC-System-Integration
mkdir data/collections/mysamples
cd ros
rosrun tools autoTLDataCollector.py mysamples/session1

./imgs/sdc-sysint-auto-data-collector.gif

Real world testing

  1. Download training bag that was recorded on the Udacity self-driving car
  2. Unzip the file
unzip traffic_light_bag_files.zip
  1. Play the bag file
rosbag play -l traffic_light_bag_files/loop_with_traffic_light.bag
  1. Run the Rosbag Diagnostics
rosrun tools diagScreenRosbag.py
  1. Launch your project in site mode
cd SDC-System-Integration/ros
source devel/setup.bash
roslaunch launch/site-rosbag.launch

New Waypoint Test against Rosbag

About

Self Driving Car Engineer Nanodegree System Integration Capstone Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published