# Uso di tecniche di Reinforcement Learning nel controllo del pendolo inverso

## Obiettivi
L’obiettivo di questa tesi è la progettazione e la realizzazione di un sistema di controllo automatico che sfrutti algoritmi basati su tecniche di apprendimento per rinforzo in un ambiente fortemente non lineare.

Il problema preso in esame è il pendolo inverso incernierato su un carrello mobile su un’asse. Questo sistema rappresenta da cinquant’anni il benchmark più utilizzato per controlli di sistemi non lineari.

## Struttura
La tesi si articola come segue:
* Nel primo capitolo vengono introdotti i concetti generali delle tecniche di Reinforcement Learning, il modello del sistema fisico preso in esame e il software impiegato per la simulazione.
* Nel secondo capitolo viene utilizzato un algoritmo modelfree (il Q-Learning) per realizzare un controllo di tipo BangBang.
* Nel terzo capitolo viene scelta una architettura più complessa, costituita da un sistema di due PID e numerosi automi CARLA, basati su Reinforcement Learning di tipo continuo.
* Per concludere, all’interno del quarto capitolo vengono evidenziati vantaggi e svantaggi relativi a ogni architettura proposta, andando a confrontare i risultati sperimentali delle due tecniche.

## Simulazione con algoritmo QLearning
{{< youtube "2hDquW33IvQ" >}}

## Simulazione con automi CARLA
{{< youtube "57mDXqlTeZs" >}}

## Tesi Completa
{{< googlePdfReader "1wAY1K1wxITnEN--7ZVMmSJCTMYI1zblU" "Tesi Completa" >}}

## Repository 
La repository completa è disponibile su [https://gitlab.com/Ablablab/pendoloinverso](https://gitlab.com/Ablablab/pendoloinverso)




