Skip to content

Latest commit

 

History

History
executable file
·
78 lines (58 loc) · 3.24 KB

File metadata and controls

executable file
·
78 lines (58 loc) · 3.24 KB

System Integration Capstone Project

Project goal

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).

Project overview

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.

System 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

ROS topics and nodes

Nodes of interest in this project are:

  1. Waypoint Updater Node (Planning subsystem) ./ros/src/waypoint_updater/waypoint_updater.py

Wayppoint Updater Node

  1. DBW/drive-by-wire Node (Control subsystem) ./ros/src/twist_controller/dbw_node.py

DBW Node

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

Traffic Light Detection Node

Basic Build Instructions

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
  • Follow these instructions to install ROS
  • 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 "uWebSocketIO Starter Guide" found in the classroom (see Extended Kalman Filter Project lesson).

Usage

  1. Clone the project repository
git clone https://github.com/AElkenawy/SDCars-Capstone-ROS.git
  1. Install python dependencies
cd CarND-Capstone
pip install -r requirements.txt
  1. Make and run styx
cd ros
catkin_make
source devel/setup.sh
roslaunch launch/styx.launch
  1. Run the simulator