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.
The strategy here is to try to find the fastest (and also most expensive) way to self-driving, usually directly to level 5.
Since all these companies strive to remove the safety driver, they want the system to be extremely safe, but also handle all scenarios.
Summary of the "Everything that fits" approach:
β Lots of sensor redundancy for a safe system
β Fast development by taking all "shortcuts"
β Straight to L5
β Very expensive (both development and product)
β Difficult to scale
β Difficult to collect massive amounts of data
2οΈβ£ "Ask for permission" approach.
This is the strategy of Mercedes and also many of the other traditional car manufacturers. They prefer to start with a very safe system (automotive safety standards are very hard), but in limited scenarios, like level 3 or only in traffic jams.
The sensors are nicely integrated and not really visible if you aren't looking for them. Can you spot the lidars, the cameras and the radars in these cars? π€Computation power is more limited.
The goal is to be on the safe side and scale the system slowly as regulations allow.
Summary of the "Ask for permission" approach:
β Very safe approach
β Not too expensive
β Easily scalable and can provide lots of data
β Slow development
β Only limited use cases in the beginning
β Not clear if it can easily scale to level 5
3οΈβ£ "Ask for forgiveness" approach.
This is where Tesla is going - launch as quickly as possible to the end users and let them test and provide feedback and data. This is not the safest approach, but the one that provides the fastest feedback loop and most data π€·ββοΈ
Tesla famously rejects the use of lidar and HD maps and goes all in using cameras (plus radar) and lots of compute power.
While their system is level 2, it seems that they want to show that it is statistically safer than a regular driver in order to get regulatory approval.
Summary of the "Ask for forgiveness" approach:
β Cheap
β Scalable and provides massive amount of feedback and data
β Very fast development
β Dangerous (end user testing)
β Bets on CV/ML reaching human like performance
β Not clear if it can easily scale to level 5
Summary π
It is difficult to tell which approach will be most successful. All approaches have somewhat difference goals and bet on different strategies. Very interesting times are coming...
β’ β’ β’
Missing some Tweet in this thread? You can try to
force a refresh
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.
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.
A lot of the technology behind the FSD software was presented at a conference in February. Check out this video, it is really interesting!
Main point is Tesla is using a "Bird's eye view" neural network to predict the layout of the road.
You can see this in action in the car - you see all lines defining the lanes and the road boundaries in the display. They seem to be coming from the vision system and not from a map, because they are very unstable and often not very accurate.