You are feeling overwhelmed when learning something new? π«
There is so much information out there and you don't know where to start? π₯΄
Here is my strategy to learn new concepts that has helped me a lot in my career...
π Thread π
The problem with complex topics? π€
Today, the problem is not the availability of the information, but its discovery! π
You need to avoid going down the rabbit whole, before you are sure this is the right rabbit hole π
Learn to focus and prioritize how to spend your time!
Get a rough overview πΊοΈ
Research about the topic you are trying to learn and get a rough idea of the existing concepts. Don't try to understand everything yet!
The goal is to only have an overview of what is out there.
Survey papers about a specific topic are a good example.
Choose a small and specific specific problem you want to solve βοΈ
You cannot learn everything at once, so you need to focus!
Having a concrete example will help you focus and prioritize what you should learn next. Create a small, specific project in the field you are learning.
Dig deeper on specific topics π
Now, try to learn some specific topic in more details. The topic should directly help you solve your specific problem.
Again, dig only as deep as you need for your particular task and not much deeper!
Now, you are ready to iterate - choose a bigger and more complex topic to learn and experiment on! πͺ
The knowledge gained in the first iteration will help you guide your learning path!
Self-driving car engineer roles - Big Data Engineer π½
Self-driving cars have lots of cameras, lidars and radars. Waymo currently has 29 cameras on a single vehicle! The cars generate huge amounts of data, easily more than 1 GB/s. This data needs to be processed...
Thread π
Problems to work on π€
The big data engineer needs to design and implement efficient storage and data processing pipelines to handle such large amounts of data.
The data also needs to be made available to the developers in a way that they can efficiently get to what they need.
Data πΎ
Imagine that the self-driving car is recording data at a rate of 1 GB/s. Going on a test drive for 4 hours means that you'll collect more than 14 TB of data!
There are specialized loggers that can handle such rates, like this beast for example: vigem.de/en/content/proβ¦
Self-driving car engineer roles - Computer Vision Engineer π
The camera is one of the most important sensors! It is not always the most accurate one, but it can provide much more data than a lidar or radar. Extracting this data is the job of the CV engineer.
Thread π
Problems to work on π€
Here some typical object classes that need to be detected and classified.
π Traffic signs
π¦ Traffic lights
π Vehicles
πΆ Pedestrians
π¦ Animals
π£οΈ Lane markings
ποΈ Landmarks
π§ Construction zones
𧱠Obstacles
π Police cars
Distance estimation π
Detecting an object is not enough, though. You also want to know how far the object is from the car. While the detection part is dominated by deep learning, the traditional CV methods (e.g. Kalman Filter) are still very useful for distance estimation.
Self-driving car engineer roles - Software Engineer π»
There are many specialized roles in a self-driving car project, like ML or CV engineers. However, every projects needs lots of good software devs - you can enter the industry even without specific knowledge!
Thread π
Problems to work on π€
Some problems that software developers work on to build a self-driving car (the list is not exhaustive):
- HMI
- Operating system
- Logging and tracing
- Communication between ECUs
- Internal frameworks and libraries
- Implementing diagnostic interfaces
Software engineers also work closely with many of the more specialized roles.
For example with Machine Learning engineers to implement models on the ECU or with Vehicle Control engineers to get their algos working efficiently.
Some interesting self-driving news lately:
- Waymo launching test fleet without safety driver
- Tesla launching a beta of their Full Self-Driving
- Mercedes announcing a level 3 traffic jam pilot for 2021
There are 3 very different approaches π
1οΈβ£ "Everything that fits" approach.
This is Waymo's approach, but other companies like Cruise, Argo, Aurora, Uber, Zoox have a similar strategy.
Fit as much sensors as possible on the car, build high-definition maps of the environment and throw in lots of compute power.
Check out some images of these cars - they all have multiple lidars, cameras and radars all around the car. Waymo now has 29 cameras! π²
They are not really integrated in a consumer oriented way, but it should be fine for a robotaxi.
How to become a self-driving car engineer? π»π§ π
Well, there is no easy answer - building a self-driving car requires expertise from many different fields.
The good new is that there are many paths that will lead you to a job in this industry!
Read more details below π
There are many different engineering roles in a self-driving car project:
π» Software Development
π§ Machine Learning
π Computer Vision
ποΈ Vehicle Control
βοΈ Hardware
π½ Big Data
πΉοΈ Simulation
π Mapping
π§ Safety
π Security
π Test and Validation
π¨ Tooling
and more... π
Over the next days I'll share some of my experience working in the industry and describe in more details the different roles and what skills are required to enter the field.