Openpilot is a vast open-source project, with more than 230 contributors and 50.000 lines of code. The documentation available gives some insights on what Openpilot is capable of doing, how to install it and how people can contribute to it, while the development team posts periodically update on the company’s blog on the state of the project and implementation of new features. This information, which could be enough for a user that only wants to use Openpilot and, from time to time, receive updates on the changes that will be made in future releases, could be insufficient for a developer that wants to contribute and doesn’t know where to start. On the blog are present general information on what the different components of the software are and how they interact, but no technical documentation is available. The community of Openpilot is very active and often from the community come the answers to the technical questions of the developers, but community members cannot be always reliable and give answers that are the results of their interpretation of the code. This study aims to analyze the Openpilot, reverse engineering its codebase to understand how the software is structured, how the different components interact and exchange messages, and what are what is the theory behind some of the key aspects of the software. The analysis will focus on: • The dependencies that characterize the project and how Openpilot leverages its libraries. • How the different components of the software have been tested. • How each component of the software evolved. • How the work was organized and how open sourcing contributed to the development. The analysis of the contributions aims to identify the key contributors and what functionalities were introduced during the different releases. The starting point is the history of the Git commits of each package of the repository, which will then be filtered and grouped to identify the key contributions. To better understand how the Openpilot testing goals are pursued, for each directory will be analyzed the tests that are included and the GitHub Actions that are executed after each commit, to have a clearer picture of what are the most critical aspects to monitor for each repository. The project’s version considered for this analysis will be version 0.8.7, released on 01/07/2021.

Openpilot è un vasto progetto opensource, con più di 230 contributori e 50.000 righe di codice. La documentazione disponibile fornisce alcuni spunti su cosa è in grado di fare Openpilot, come installarlo e come le persone possono contribuire al suo sviluppo, mentre il team di sviluppo pubblica periodicamente aggiornamenti sul blog aziendale, informando i lettori sullo stato del progetto e sull'implementazione di nuove caratteristiche. Queste informazioni, che potrebbero essere sufficienti per un utente che vuole solo utilizzare Openpilot e, di tanto in tanto, ricevere aggiornamenti sulle modifiche che verranno apportate nelle versioni future, potrebbe essere insufficienti per uno sviluppatore che vuole contribuire e non sa da dove cominciare. Sul blog sono presenti informazioni generali su cosa sono i diversi componenti del software e come interagiscono tra loro, ma non è disponibile documentazione tecnica. La community di Openpilot è molto attiva e spesso proprio dalla community arrivano le risposte alle domande tecniche degli sviluppatori, che tuttavia possono non essere sempre affidabili. Lo scopo di questo studio è analizzare Openpilot, decodificare il suo codice sorgente per capire come è strutturato il software, come i diversi componenti interagiscono e scambiano informazioni e quali sono gli aspetti teorici alla base di alcuni concetti chiave del software. L'analisi verterà su: • Le dipendenze che caratterizzano il progetto e come Openpilot sfrutta le sue librerie. • Come sono stati testati i diversi componenti del software. • Come si è evoluto il software. • Come è stato organizzato il lavoro e come l'open sourcing ha contribuito allo sviluppo. Lo scopo dell'analisi dei contributi è identificare i contributori chiave e quali funzionalità sono state introdotte nel corso dello sviluppo. Il punto di partenza è la cronologia dei cambiamenti presenti su GitHub per ogni modulo del software, che verrà poi filtrata e raggruppata per identificare i contributi chiave. Per comprendere meglio come vengono perseguiti gli obiettivi di test di Openpilot, per ogni modulo verranno analizzati i test inclusi e le GitHub Action che vengono eseguite dopo ogni commit, per avere un quadro più chiaro di quali sono gli aspetti critici da monitorare per ogni repository. La versione del progetto considerata per questa analisi sarà la versione 0.8.7, rilasciata il 01/07/2021.

Self-driving cars and Openpilot : a complete overview of the framework

FONTANA, FRANCESCO
2020/2021

Abstract

Openpilot is a vast open-source project, with more than 230 contributors and 50.000 lines of code. The documentation available gives some insights on what Openpilot is capable of doing, how to install it and how people can contribute to it, while the development team posts periodically update on the company’s blog on the state of the project and implementation of new features. This information, which could be enough for a user that only wants to use Openpilot and, from time to time, receive updates on the changes that will be made in future releases, could be insufficient for a developer that wants to contribute and doesn’t know where to start. On the blog are present general information on what the different components of the software are and how they interact, but no technical documentation is available. The community of Openpilot is very active and often from the community come the answers to the technical questions of the developers, but community members cannot be always reliable and give answers that are the results of their interpretation of the code. This study aims to analyze the Openpilot, reverse engineering its codebase to understand how the software is structured, how the different components interact and exchange messages, and what are what is the theory behind some of the key aspects of the software. The analysis will focus on: • The dependencies that characterize the project and how Openpilot leverages its libraries. • How the different components of the software have been tested. • How each component of the software evolved. • How the work was organized and how open sourcing contributed to the development. The analysis of the contributions aims to identify the key contributors and what functionalities were introduced during the different releases. The starting point is the history of the Git commits of each package of the repository, which will then be filtered and grouped to identify the key contributions. To better understand how the Openpilot testing goals are pursued, for each directory will be analyzed the tests that are included and the GitHub Actions that are executed after each commit, to have a clearer picture of what are the most critical aspects to monitor for each repository. The project’s version considered for this analysis will be version 0.8.7, released on 01/07/2021.
TAMBURRI, DAMIAN ANDREW
ING - Scuola di Ingegneria Industriale e dell'Informazione
21-dic-2021
2020/2021
Openpilot è un vasto progetto opensource, con più di 230 contributori e 50.000 righe di codice. La documentazione disponibile fornisce alcuni spunti su cosa è in grado di fare Openpilot, come installarlo e come le persone possono contribuire al suo sviluppo, mentre il team di sviluppo pubblica periodicamente aggiornamenti sul blog aziendale, informando i lettori sullo stato del progetto e sull'implementazione di nuove caratteristiche. Queste informazioni, che potrebbero essere sufficienti per un utente che vuole solo utilizzare Openpilot e, di tanto in tanto, ricevere aggiornamenti sulle modifiche che verranno apportate nelle versioni future, potrebbe essere insufficienti per uno sviluppatore che vuole contribuire e non sa da dove cominciare. Sul blog sono presenti informazioni generali su cosa sono i diversi componenti del software e come interagiscono tra loro, ma non è disponibile documentazione tecnica. La community di Openpilot è molto attiva e spesso proprio dalla community arrivano le risposte alle domande tecniche degli sviluppatori, che tuttavia possono non essere sempre affidabili. Lo scopo di questo studio è analizzare Openpilot, decodificare il suo codice sorgente per capire come è strutturato il software, come i diversi componenti interagiscono e scambiano informazioni e quali sono gli aspetti teorici alla base di alcuni concetti chiave del software. L'analisi verterà su: • Le dipendenze che caratterizzano il progetto e come Openpilot sfrutta le sue librerie. • Come sono stati testati i diversi componenti del software. • Come si è evoluto il software. • Come è stato organizzato il lavoro e come l'open sourcing ha contribuito allo sviluppo. Lo scopo dell'analisi dei contributi è identificare i contributori chiave e quali funzionalità sono state introdotte nel corso dello sviluppo. Il punto di partenza è la cronologia dei cambiamenti presenti su GitHub per ogni modulo del software, che verrà poi filtrata e raggruppata per identificare i contributi chiave. Per comprendere meglio come vengono perseguiti gli obiettivi di test di Openpilot, per ogni modulo verranno analizzati i test inclusi e le GitHub Action che vengono eseguite dopo ogni commit, per avere un quadro più chiaro di quali sono gli aspetti critici da monitorare per ogni repository. La versione del progetto considerata per questa analisi sarà la versione 0.8.7, rilasciata il 01/07/2021.
File allegati
File Dimensione Formato  
2021_12_Fontana_01.pdf

accessibile in internet per tutti

Descrizione: Thesis
Dimensione 10.86 MB
Formato Adobe PDF
10.86 MB Adobe PDF Visualizza/Apri
2021_12_Fontana_02.pdf

accessibile in internet per tutti

Descrizione: Executive summary
Dimensione 692.6 kB
Formato Adobe PDF
692.6 kB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/181889