Introducing the Udacity open source self-driving car project

There is another open source self-driving car project by Udacity (https://github.com/udacity/self-driving-car) that was created for teaching their Nanodegree self-driving car program. This project aims to create a completely autonomous self-driving car using deep learning and using ROS as middleware for communication.

The project is split into a series of challenges, and anyone can contribute to the project and win a prize. The project is trying to train a Convolution Neural Network (CNN) from a vehicle camera dataset to predict steering angles. This approach is a replication of end-to-end deep learning from NVIDIA (https://devblogs.nvidia.com/parallelforall/deep-learning-self-driving-cars/), used in their self-driving car project called DAVE-2.

The following is the block diagram of DAVE-2. DAVE-2 stands for DARPA Autonomous Vehicle-2, which is inspired by the DAVE project by DARPA:

DAVE-2 block diagram (source: https://en.wikipedia.org/wiki/Nvidia_Drive#/media/File:NVIDIA_Drive_PX,_Computex_Taipei_20150601.jpg. Image by: NVIDIA Taiwan. Licensed under Creative Commons CC-BY-SA 2.0: https://creativecommons.org/licenses/by/2.0/legalcode)

This system basically consists of three cameras and an NVIDIA supercomputer called NVIDIA PX. This computer can train images from this camera and predict the steering angle of the car. The steering angle is fed to the CAN bus and controls the car.

The following are the sensors and components used in the Udacity self-driving car:

  • 2016 Lincoln MKZ—this is the car that is going to be made autonomous. In the previous section, we saw the ROS interfacing of this car. We are using that project here too.
  • Two Velodyne VLP-16 LIDARs
  • Delphi radar
  • Point Grey Blackfly cameras
  • Xsens IMU
  • Engine control unit (ECU)

This project uses the dbw_mkz_ros package to communicate from ROS to the Lincoln MKZ. In the previous section, we set up and worked with the dbw_mkz_ros package. Here is the link to obtain a dataset to train the steering model: https://github.com/udacity/self-driving-car/tree/master/datasets. You will get an ROS launch file from this link to play with these bag files too.

Here is the link to get an already trained model that can only be used for research purposes: https://github.com/udacity/self-driving-car/tree/master/steering-models. There is an ROS node for sending steering commands from the trained model to the Lincoln MKZ. Here, the dbw_mkz_ros packages act as an intermediate layer between the trained model commands and the actual car.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.17.68.14