Integration of Autonomous vehicle subsystems of perception, localization, planning and control into one system using ROS (Robot Operating System) middleware. The vehicle should be able to drive around the test track using waypoints navigation while obeying traffic rules (and avoiding obstacles).
The aim of drive-by-wire (dbw) system configuration is to generate acceleration, braking and steering commands based on sensor measurement. The core elements of the autonomous vehicle system are perception, localization, planning and control subsystems.
The system architecture is based on open-source software for self-driving vehicles of Autoware. ROS nodes and topics used to implement core functionality of the autonomous vehicle system of waypoint following, traffic light detection and control are illustrated as
Nodes of interest in this project are:
- Waypoint Updater Node (Planning subsystem)
./ros/src/waypoint_updater/waypoint_updater.py
- DBW/drive-by-wire Node (Control subsystem)
./ros/src/twist_controller/dbw_node.py
- Traffic Light Detection Node (Perception subsystem)
./ros/src/tl_detector/tl_detector.py. Traffic Light Classifier is a SSD (Single Shot MultiBox Detector) CNN model../ros/src/tl_detector/light_classification/tl_classifier.py
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
- Follow these instructions to install ROS
- ROS Kinetic if you have Ubuntu 16.04.
- ROS Indigo if you have Ubuntu 14.04.
- Download the Udacity Simulator.
Build the docker container
docker build . -t capstoneRun the docker file
docker run -p 4567:4567 -v $PWD:/capstone -v /tmp/log:/root/.ros/ --rm -it capstoneTo set up port forwarding, please refer to the "uWebSocketIO Starter Guide" found in the classroom (see Extended Kalman Filter Project lesson).
- Clone the project repository
git clone https://github.com/AElkenawy/SDCars-Capstone-ROS.git- Install python dependencies
cd CarND-Capstone
pip install -r requirements.txt- Make and run styx
cd ros
catkin_make
source devel/setup.sh
roslaunch launch/styx.launch- Run the simulator




