Want to become an autonomous vehicle engineer?

If so, you need to learn robotics. I'm revealing the same resources I used to teach myself robotics and get a job in the industry.

Check out my resources


Connect with me on

Books

Introduction to Autonomous Mobile Robots

If you're completely new to robotics I highly recommend starting here because it will introduce you to wheeled robots kinematics, sensors, mapping, localization, trajectory planning, and much more.

I really enjoyed this book because it strikes a good balance of intuition and breadth of topics.

Get on Amazon
Probabilistic Robotics

This is a seminal text in modern robotics by the founder of what is now Waymo (#1 leader in autonomy).

It discusses how to apply statistical methods to build robust perception and control systems. If you're serious about becoming a self-driving car engineer, you NEED to understand this material.

Get on Amazon
Principles of Robot Motion

If you like the idea of solving how self-driving cars avoid obstacles and decide how to get from A to B, this is your jam.

It compentently covers the range of topics needed to effectively design trajectory planning and motion control systems. I really enjoyed reading this to understand state lattice planning.

Get on Amazon
Learning ROS for Robotics Programming

ROS is probably one of the fastest ways to learn into robotics programming and self-drivng car tech.

I've read a few ROS books and this one is my favorite because it covers enough ROS to be dangerous but also basic lidar processing and computer vision.

Get on Amazon
A Tour of C++

C++ is the backbone of all high-performance robotics systems and if you want to be writing the code that's going on an actual vehicle...it's going to be C++!

If you're not already a C++ ninja, this book will serve as an excellent guide to bridge the gap between your prior programming experience and the C++ language.

Get on Amazon
The Hundred-Page Machine Learning Book

Machine Learning is used in all but the most basic autonomous vehicle systems. The reason is that almost all aspects of the robot must deal with a wide range of imperfect data and patterns. For instance, a lidar scan of a pedestrian could look wildly different based on the height, body shape, clothing, and items they're holding. To robustly deal with all cases, machine learning helps us effeciently generalize data to understand the world and make confident decisions.

I found this book to be very helpful in understanding which techniques to use when designing perception and planning systems.

Get on Amazon
Deep Learning

The bleeding-edge of autonomous vehicle systems use deep learning systems to percieve the world, predict where objects will go, and plan what to do next.

If you're looking to join a perception or behavioral planning team, you should have a good handle on deep learning techniques. This is a great place to learn the basics of deep convolutional neural networks and how to develop your own.

Get on Amazon
CUDA by Example

Many of the perception, prediction and planning algorithms must meet strict timing deadlines to maintain safety. One of the best tools is a GPU to speed up computation and CUDA is the language used to run code on the GPU. Lots of localization, path planning, and machine learning models make use of CUDA to accelerate their runtime.

This is the exact book I used to learn the basics of GPU programming and write my own accelerated 3D NDT mapping algorithm.

Get on Amazon
The DARPA Urban Challenge

This book is filled with incredibly valuable engineering lessons and insight into what it takes to build an autonomous system. This is a collection of the research papers from the top competitors of the DARPA Urban Challenge. I'm convinced that anyone that's going into the field needs to read this because it contains so much experiential knowledge in autonomous vehicle development.

If you're going to pick only one book to read...this is it!

Get on Amazon

Courses

Udacity: Self-Driving Car Engineering Nanodegree

If there's only ONE thing I could recommend to those wanting a job in the autonomous vehicle field...this is it! I'm a graduate of this course and was able to find a job right before graduating.

It covers everything you need to know to become a successful autonomous vehicle engineer. You'll not only be way ahead of the pack when applying to jobs due to all the resume-building projects you're going to build but you'll also be able to confidently keep up with new academic research. I'm living proof!

Start Course
Coursera: Machine Learning

If you don't have any experience in developing machine learning models, this free course is a great introduction to the theory behind neural networks. Andrew Ng, a legendary ML leader, does an incredible job of providing intuition while also keeping the rigor.

Start Course
Robot Ignite Academy

If you're trying to learn ROS, this is your secret weapon! Robot Ignite Academy is great for those that want to learn by doing because it features a browser IDE and guided tutorials.

They offer courses on a bunch of different ROS topics like ROS for Beginners, Deep Learning, Industrial Robotics, Perception, 3D Mapping, and so much more!

Start Course
Deep Learning for Self-Driving Cars

This class is an introduction to the practice of deep learning through the applied theme of building a self-driving car.

It is open to beginners and is designed for those who are new to machine learning, but it can also benefit advanced researchers in the field looking for a practical overview of deep learning methods and their application.

Start Course

Code

Autoware

Autoware is the world's first "all-in-one" open-source software for self-driving vehicles. The capabilities of Autoware are primarily well-suited for urban cities, but highways, freeways, mesomountaineous regions, and geofenced areas can be also covered.

The codebase is organized and well-documented. I highly recommend studying this code as it's simple enough to understand the algorthims and design patterns.

Github
Apollo

Apollo is a high performance, flexible architecture which accelerates the development, testing, and deployment of Autonomous Vehicles.

I also recommend studying this codebase and it incorporates a lot of great design patterns in autonomous systems.

Github
Robotics Algorithms Collection in Python

Imagine having a collection of some of the best robotics algorithms implemented in an easy to understand language.

Search no more! Many of these are relevent to mobile robots like autonomous vehicles, it also features algorithms for arm and humanoid bots.

Github