Skip to content

abhinavkulkarni/CarND-Capstone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Our team name is Braking Bad.

Team members

Name Udacity account email
Andrej Georgievski andrej.zgeorgievski[AT]gmail.com
Abhinav Kulkarni abhinavkulkarni[AT]gmail.com
Kamal Gupta kamalgupta308[AT]gmail.com
Praveen Gunasekaran praveenraj49[AT]gmail.com
Santosh Kumar sanchelseaster[AT]gmail.com

Implementation

The goal of the project is to enable a car to drive on its own. A typical self-driving car has following components:

  • Sensors - are the hardware components the car uses to observe the world
  • Perception module - processes data from one or more sensors and gives out structured information that can further be used in path planning or control
  • Planning module - is responsible for both high and low level decisions about what actions should car perform
  • Control - ensures that car follows the path set by planning module even with latency between various commands.

Alt text

The scope of this project is limited to driving Carla around a set of way-points on the road while stopping appropriately at the traffic lights. We will be using ROS (Robot Operating System) to implement various components of this problem.

DBW Node

Alt text

Waypoint Updater Node

Alt text

Traffic Light Detection Node

Alt text

Here is the final state architecture diagram of various topics and nodes we have used in ROS

Alt text

Installation

Please 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 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

(Only for Workspace) Install ros-kinetic-dbw package

sudo apt-get update
sudo apt-get install -y ros-kinetic-dbw-mkz-msgs
  1. Make and run styx
cd ros
catkin_make
source devel/setup.sh
roslaunch launch/styx.launch
  1. Run the simulator

Testing components

Waypoint Updater Node Partial

Run roslaunch launch/styx.launch in one of the terminals, On second terminal,

  • either run rostopic echo /final_waypoints
  • run the simulator and see bunch of green dots appearing in front of the car

DBW Node

  1. Download the rosbag file from here and save it as /home/workspace/CarND-Capstone/data/dbw_test.rosbag.bag
  2. Go to the directory /home/workspace/CarND-Capstone/ros
  3. Run roslaunch src/twist_controller/launch/dbw_test.launch
  4. If ran correctly, this generates 3 files in the directory /home/workspace/CarND-Capstone/ros/src/twist_controller
    • brakes.csv
    • throttles.csv
    • steers.csv

Real world testing

  1. Download 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

Debugging

While compiling on Udacity workspace

if you get following error message

CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
  Could not find a package configuration file provided by "dbw_mkz_msgs" with
  any of the following names:

    dbw_mkz_msgsConfig.cmake
    dbw_mkz_msgs-config.cmake

  Add the installation prefix of "dbw_mkz_msgs" to CMAKE_PREFIX_PATH or set
  "dbw_mkz_msgs_DIR" to a directory containing one of the above files.  If
  "dbw_mkz_msgs" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  styx/CMakeLists.txt:10 (find_package)


-- Could not find the required component 'dbw_mkz_msgs'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "dbw_mkz_msgs" with
  any of the following names:

    dbw_mkz_msgsConfig.cmake
    dbw_mkz_msgs-config.cmake

  Add the installation prefix of "dbw_mkz_msgs" to CMAKE_PREFIX_PATH or set
  "dbw_mkz_msgs_DIR" to a directory containing one of the above files.  If
  "dbw_mkz_msgs" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  styx/CMakeLists.txt:10 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/workspace/CarND-Capstone/ros/build/CMakeFiles/CMakeOutput.log".
See also "/home/workspace/CarND-Capstone/ros/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

run the following commands

sudo apt-get update
sudo apt-get install -y ros-kinetic-dbw-mkz-msgs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •