openpilot is an open-source driving system developed by comma.ai. As the slogan ‘make driving chill’ reflects, the system aims at achieving partial automation (level 2), letting the software control both steering and acceleration, while the human is still responsible for environment monitoring and fallback performance. With the corresponding plug-and-play hardware, consisting of wiring to communicate with the bus of the car and a dashboard unit used for road monitoring, the performance of any of the 63 supported cars should be significantly enhanced and improved compared to factory functionality, for under $1000.
Comma.ai is founded by George Hotz (aka geohot), known for sim-unlocking the first generation iPhone, developing various iOS jailbreaks and hacking the PlayStation 3 to side-load pirated games. In a recent presentation, Hotz states the ambition of openpilot to become the Android of car automation, comparing the Tesla performance to Apple. Comma.ai collects the driving data on a voluntary basis to constantly adjust the model and improve performance. So far, over 22 million kilometres of driving data has been collected since openpilot was made publicly available in 2015. As of January 2020, openpilot has 1500 monthly users. This number is expected to grow since the company recently made its first appearance on the 2020 edition of the Consumer Electronics Show (CES).
The system uses a pre-trained non-deterministic deep neural network to locally make driving decisions, written in Python 3. The Panda subsystem used to communicate with the car hardware is written in C and comes with certain timing guarantees. The system complies with ISO26262 road vehicles safety functionality and furthermore never overrules the factory default safety features.
Bob’s Traveling Problem
The advertising slogan of openpilot is ‘make driving chill’, indicating that apparently driving is currently not so chill. Imagine Bob who’s living in the US, he visits his family on a regular basis and therefore travels between his residence in Austin TX and his family in Houston TX. Public transport is rarely available along this 266 km route, and while taking a flight is the fastest way of traveling, Bob prefers saving both his wallet and the environment by utilizing his car.
Autonomous driving is a very simple task in theory, but still remains unsolved at large. How does openpilot tackle the problems that arise on the road?
In previous posts, we focused on the business, technical and quality side of openpilot. Today it’s time to zoom in on some different aspect that might not be the first thing that pops into your mind when thinking about the architecture of a software product: Variability! Now you might think, variability is everywhere or variability is unavoidable. In the world of software, both are true! This post will be dedicated to defining, identifying and coping with variability from an architectural point of view. We will do this by identifying the aspects of the software that are susceptible for variability and how individual components relate to each other. Subsequently we will look at the meta-side of variability and which effects it has on those concerned. Finally, we will have a look at openpilot’s strategy for managing variability.