mparmis / UBC-AUTONOMOUS-DRIVING-COMPETITION

In a team of two, we used hybrid classical control and Machine Learning algorithms for driving a robot in a simulated environment (Gazebo) using Robot Operating System (ROS). The live image feed from the in-simulation camera mounted on top of the robot was used to navigate the course, identify pedestrians, and read license plates.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ENPH 353 - Simulated Autonomous Driving Competition

This project is the final result of the ENPH 353 course competition. ~20 pairs of students built code to move a robot in a simulated environment. The robots had to navigate a course, avoid moving obstacles, and collect information from 'parked cars' in the environment.

env


Setup

The following repo was developed on a Ubuntu 18.04 distribution. Additionally, these exact setup steps are untested.

  1. Install ros-melodic and gym-gazebo.
  2. Install and activate the conda environment from the env.yml file.
  3. The code requires the simulated environment to run. This can be found in the 2019F_competition_student repository for the course. Please setup the repository, source the environment, and run the simulation.
  4. Run python full_stack/main.py. The robot in the gym-gazebo environment should now be moving and recording license plates!

Components

  • Built a Convolutional Neural Network with three different networks to identify and read the license plates on the cars.

  • Heavily augmented the training data and did error analysis using confusion matrix to get robust results. The robot was able to read all the license plates correctly at the competition.

  • Used classical Computer Vision techniques (OpenCV) to navigate the robot, the algorithm successfully stayed on the road, detected the cross walk and avoided collision with the pedestrians.

  • Used filtering and clustering computer vision algorithms to detect and avoid pedestrian and truck obstacles

robo_view

About

In a team of two, we used hybrid classical control and Machine Learning algorithms for driving a robot in a simulated environment (Gazebo) using Robot Operating System (ROS). The live image feed from the in-simulation camera mounted on top of the robot was used to navigate the course, identify pedestrians, and read license plates.


Languages

Language:Python 100.0%