Questo progetto nasce come Project Work relativo al corso di Autonomous Agents and Intelligent Robotics, tenuto dal professor Giorgio Battistelli, nell'ambito del corso di laurea magistrale in Intelligenza Artificiale all'Università degli Studi di Firenze, Italia.
Obiettivo principale è la valutazione e il confronto di algoritmi di Reinforcement Learning per la risoluzione di un problema di Autonomous Platoon Control, conducendo la parziale ricostruzione, su piccola scala, dei risultati sperimentali ottenuti dal seguente paper di riferimento:
Autonomous Platoon Control with Integrated Deep Reinforcement Learning and Dynamic Programming, Tong Liu, Lei Lei, Kan Zheng, Kuan Zhang; 2022.
Il setting, semplificato rispetto a quanto descritto nel paper, prevede la creazione di un environment a singolo agente, nel quale l'agente deve adeguare la propria dinamica di modo a quella, imposta a priori, di un solo altro veicolo leader. Pertanto, ci si trova in un contesto dato da due soli veicoli, di cui uno è l'agente stesso.
L'agente viene addestrato utilizzando due differenti algoritmi di Q-Learning:
- Deep Q-Learning: prevede la discretizzazione dell'action space, ma non lo state space;
- Q-Learning tabellare: prevede la discretizzazione sia dell'action space, sia dello state space, in quanto utilizza una Q-Table.
Le performance dell'agente per ogni run e metodo sono state misurate e salvate utilizzando il supporto di Weights & Biases.
Data la semplicità strutturale dell'environment, è stato implementato un semplice visualizzatore che utilizza Panda3D per effettuare un rendering indicativo degli episodi.
Il setting del seguente problema di Autonomous Platoon Control è stato ripreso totalmente da quello implementato nel paper di riferimento, con l'unica semplificazione data dalla presenza di un singolo veicolo agente, e un singolo altro veicolo che lo precede, il leader. Tutti i veicoli seguono una dinamica del primo ordine:
Con
Per prevenire divergenze, esplosioni irrealistiche di accelerazioni e quindi la compromissione dell'addestramento dell'agente, vengono imposti dei vincoli ai valori assumibili dall'accelerazione dell'agente e dall'azione:
Il successo del task di controllo del plotone dipende fortemente dal mantenimento di una corretta distanza tra i veicoli. Nel paper di riferimento, si definisce headway la distanza bumper-to-bumper tra due veicoli consecutivi:
Con
In qualsiasi istante di tempo
Con
Il controllo ottimale del plotone si raggiunge nel momento in cui ogni veicolo riesce ad adeguare la propria dinamica di moto in modo da mantenere nel tempo la distanza desiderata dal veicolo che lo precede. Di conseguenza, il Platoon Control può essere facilmente reso un problema di minimizzazione imponendo come obiettivo la minimizzazione, da parte dell'agente, di due valori di errore, uno sulla distanza corretta da raggiungere rispetto al veicolo precedente, e uno sulla velocità corretta da mantenere affinché tale distanza desiderata non sia solo raggiunta, ma mantenuta nel tempo.
Lo state space si compone, ad ogni timestep
L'action space si compone di un unico valore:
Leader:
Follower i:
Viene implementata una funzione di reward Huber-like
Definito l'expected cumulative reward
Breve introduzione teorica dei metodi di Deep Q-Learning o Q-Learning Tabulare. Aspettative generali di funzionamento dei due metodi. Spiegazione sommaria della creazione dell'Agente.
Spiegazione dei vari attributi e metodi per la creazione dell'ambiente, confrontandoli con l'implementazione visibile nel paper di riferimento. Breve spiegazione delle aggiunte che ho deciso di fare nel mio lavoro, legate particolarmente alla possibilità di visualizzare correttamente gli episodi, considerando ogni veicolo non più come un punto ma come un oggetto solido.
Spiegazione sommaria di come ho utilizzato Panda3D per visualizzare ogni episodio + piccola guida su come utilizzare e interpretare la visualizzazione.
Rendering di episodi utilizzando Panda3D
Setup hardware e software; Iperparametri e range vari. Spiegazione della logica che ho adottato per raccogliere i vari risultati e fare i test.
Sequenza di plot con relativa spiegazione.
Mean Episode Reward | |
---|---|
DDPG | -0.0680 |
FH-DDPG | -0.0736 |
HCFS | -0.0673 |
FH-DDPG-SS | -0.0600 |
QL Tabellare | ? |
Deep QL | -0.1639 |
Recap generale dell'esperienza, menzionando i risultati ottenuti da ciascun metodo.