From 0049e0c8d80b11f4ed5a656207a92b732b5cd756 Mon Sep 17 00:00:00 2001 From: Manuel Andruccioli Date: Mon, 29 Jan 2024 14:06:35 +0100 Subject: [PATCH] wip: init the proposed system --- report/.gitignore | 1 + report/bibliography.bib | 1 - report/img/General + YasMarina Model.png | Bin 0 -> 26318 bytes report/img/GeneralModel.png | Bin 0 -> 26674 bytes report/img/Speed Optimization YasMarina.png | Bin 0 -> 11306 bytes report/img/YasMarinaModel.png | Bin 0 -> 26284 bytes report/img/rando_map_training_model.png | Bin 0 -> 28196 bytes report/index.tex | 229 +++++++++++++++++--- 8 files changed, 203 insertions(+), 28 deletions(-) create mode 100644 report/img/General + YasMarina Model.png create mode 100644 report/img/GeneralModel.png create mode 100644 report/img/Speed Optimization YasMarina.png create mode 100644 report/img/YasMarinaModel.png create mode 100644 report/img/rando_map_training_model.png diff --git a/report/.gitignore b/report/.gitignore index 5d04a1d3..ba3ffb9d 100644 --- a/report/.gitignore +++ b/report/.gitignore @@ -6,3 +6,4 @@ *.fdb_latexmk *.synctex.gz *.pdf +*.out diff --git a/report/bibliography.bib b/report/bibliography.bib index d0e6f8d6..061334a1 100644 --- a/report/bibliography.bib +++ b/report/bibliography.bib @@ -42,7 +42,6 @@ @inproceedings{andru doi = {10.1109/CCNC51644.2023.10060261} } - @article{PPOOpenAI, author = {Schulman, J. and Wolski, F. and Dhariwal, P. and Radford, A. and Klimov, O}, year = {2017}, diff --git a/report/img/General + YasMarina Model.png b/report/img/General + YasMarina Model.png new file mode 100644 index 0000000000000000000000000000000000000000..d96ed6ca77161e82f4ea30416c5a72d6856acfb4 GIT binary patch literal 26318 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 literal 0 HcmV?d00001 diff --git a/report/img/GeneralModel.png b/report/img/GeneralModel.png new file mode 100644 index 0000000000000000000000000000000000000000..ac702e4120cf891dc55047b46ea722b725084cc6 GIT binary patch literal 26674 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 CVi(i^ literal 0 HcmV?d00001 diff --git a/report/img/YasMarinaModel.png b/report/img/YasMarinaModel.png new file mode 100644 index 0000000000000000000000000000000000000000..7c402551d6e4fb6c9c8b07873d71f4d89fedeb95 GIT binary patch literal 26284 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 Q`rDdQimD39$1dIaKOs(~4gdfE literal 0 HcmV?d00001 diff --git a/report/index.tex b/report/index.tex index f339f4a3..0be02036 100644 --- a/report/index.tex +++ b/report/index.tex @@ -8,6 +8,7 @@ \usepackage{textcomp} \usepackage{xcolor} \usepackage{url} +\usepackage{hyperref} \usepackage{mathtools} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -250,7 +251,11 @@ \section{The proposed system} % \end{itemize} -The project is aimed at providing a two-part integrated architecture. The first part employs use of the Simulator Gym (F1tenthGym) \cite{F1tenthGym} for the training process of a reinforcement learning model based on PPO \cite{PPOOpenAI} and using waypoints in the circuits. +The project is aimed at providing a two-part integrated architecture. The first part employs use of the Simulator Gym (F1tenthGym) \cite{F1tenthGym}, based on OpenAI Gym \cite{OpenAIGym}, is a toolkit for reinforcement learning. +% +Then, the model is based on PPO \cite{PPOOpenAI}, a policy gradient methods for reinforcement learning, which alternate between sampling data through interaction with the environment, and optimizing a "surrogate" objective function using stochastic gradient ascent. +% +Afterwards, the model is trained using a waypoint-follow approach, in order to complete the circuits. The second part uses the previously trained model to predict actions that need to be taken by a car inside the ros based simulator employing sensor feedback. @@ -261,36 +266,106 @@ \section{The proposed system} % \subsection{Model Training} -\begin{figure} - \centering - \includegraphics[width=0.485\textwidth]{img/ppo.jpg} - \caption{PPO Algorithm. https://medium.com/@oleglatypov/a-comprehensive-guide-to-proximal-policy-optimization-ppo-in-ai-82edab5db200} - \label{fig:ppo} -\end{figure} +% \begin{figure} +% \centering +% \includegraphics[width=0.485\textwidth]{img/ppo.jpg} +% \caption{PPO Algorithm. https://medium.com/@oleglatypov/a-comprehensive-guide-to-proximal-policy-optimization-ppo-in-ai-82edab5db200} +% \label{fig:ppo} +% \end{figure} + +% \subsubsection{Architettura del modello} +% Il cuore del nostro sistema è una rete neurale profonda addestrata attraverso l'algoritmo PPO. La rete neurale accetta input relativi allo stato attuale del veicolo, quali posizione, velocità, angolo di sterzata e dati sensoriali provenienti da telecamere e sensori a ultrasuoni. Il modello produce un'azione di controllo, rappresentata da una distribuzione di probabilità su possibili comandi, consentendo una gestione dinamica e continua del veicolo. + +% \subsubsection{Addestramento del modello} +% Abbiamo utilizzato una vasta raccolta di dati provenienti da simulazioni di guida su diversi circuiti. Ogni episodio di addestramento ha coinvolto il modello che interagisce con l'ambiente simulato, ricevendo ricompense basate su metriche di prestazione come tempi di percorrenza, traiettorie seguite e reazioni a condizioni impreviste come curve strette o variazioni di superficie stradale. L'addestramento è stato eseguito per numerosi cicli, garantendo la convergenza del modello verso strategie ottimali di guida. + +% \subsubsection{Integrazione dei waypoints} + +% Un aspetto distintivo della nostra metodologia è l'integrazione dei waypoints dei circuiti nelle mappe di addestramento. +% % +% Abbiamo identificato e annotato accuratamente i waypoints su ciascun circuito utilizzato, indicando punti chiave sulla traiettoria ottimale. +% % +% Durante l'addestramento, il modello è stato incentivato a seguire i waypoints, fornendo una guida più precisa e adattandosi alle specificità di ciascun circuito. + +% \subsubsection{Raccolta e prepoccessing dei dati} +% La raccolta dei dati è stata effettuata attraverso simulazioni realistiche, catturando scenari di guida diversificati. Dopodiché sono stati normalizzati per garantire una distribuzione uniforme delle condizioni di guida, evitando bias durante l'addestramento. + +% \subsubsection{Parametri e configurazioni} +% Abbiamo attenziosamente scelto i parametri dell'algoritmo PPO, tra cui il tasso di apprendimento e gli intervalli di train. Per questa ragione sono state utilizzate diverse modalità di valutazione del modello in modo tale da scegliere quella migliore. -\subsubsection{Architettura del modello} -Il cuore del nostro sistema è una rete neurale profonda addestrata attraverso l'algoritmo PPO. La rete neurale accetta input relativi allo stato attuale del veicolo, quali posizione, velocità, angolo di sterzata e dati sensoriali provenienti da telecamere e sensori a ultrasuoni. Il modello produce un'azione di controllo, rappresentata da una distribuzione di probabilità su possibili comandi, consentendo una gestione dinamica e continua del veicolo. +% \medskip -\subsubsection{Addestramento del modello} -Abbiamo utilizzato una vasta raccolta di dati provenienti da simulazioni di guida su diversi circuiti. Ogni episodio di addestramento ha coinvolto il modello che interagisce con l'ambiente simulato, ricevendo ricompense basate su metriche di prestazione come tempi di percorrenza, traiettorie seguite e reazioni a condizioni impreviste come curve strette o variazioni di superficie stradale. L'addestramento è stato eseguito per numerosi cicli, garantendo la convergenza del modello verso strategie ottimali di guida. +%Questa metodologia integrata ha consentito l'addestramento di un modello di guida autonoma altamente adattivo, capace di gestire in modo dinamico i circuiti di gara e di ottimizzare le prestazioni in risposta a variazioni ambientali e specificità della pista. Nella sezione successiva, presenteremo i risultati dei nostri esperimenti, evidenziando le capacità e le limitazioni del nostro approccio. -\subsubsection{Integrazione dei waypoints} +% TODO: spiegazione funzionamento modello -Un aspetto distintivo della nostra metodologia è l'integrazione dei waypoints dei circuiti nelle mappe di addestramento. % -Abbiamo identificato e annotato accuratamente i waypoints su ciascun circuito utilizzato, indicando punti chiave sulla traiettoria ottimale. % -Durante l'addestramento, il modello è stato incentivato a seguire i waypoints, fornendo una guida più precisa e adattandosi alle specificità di ciascun circuito. +% +\subsubsection{Reward} +The provided code implements a reward assignment system for an autonomous driving agent in a simulation environment. +% +The main components of the system are as follows: -\subsubsection{Raccolta e prepoccessing dei dati} -La raccolta dei dati è stata effettuata attraverso simulazioni realistiche, catturando scenari di guida diversificati. I dati sono stati preprocessati per normalizzare le informazioni di input e garantire una distribuzione uniforme delle condizioni di guida, evitando bias durante l'addestramento. +\begin{itemize} + \item \textbf{Acceleration Reward:} + The reward depends on the agent's acceleration action. + % + If the acceleration exceeds 2, the reward increases accordingly; otherwise, a fixed reward of 0.02 is added. -\subsubsection{Parametri e configurazioni} -Abbiamo attentamente selezionato i parametri dell'algoritmo PPO, tra cui il tasso di apprendimento, il coefficiente di entropia e la dimensione dei minibatch, attraverso sperimentazioni iterative per massimizzare le prestazioni del modello su circuiti specifici. + \item \textbf{Reward for Proximity to the Race Line Point:} + The reward depends on the distance between the agent's position and the next point on the race line. + % + A small reward is added if the distance is less than 2. + % + If the distance is less than 2.5, a growing reward is added within the first 100 steps, followed by a decreasing penalty. -\medskip + \item \textbf{Penalty for Deviation from the Race Line Point:} + A penalty is subtracted if the distance from the next point on the race line exceeds 3. + + \item \textbf{Reward for Lap Completion:} + A reward proportional to the deviation from the goal is added upon completing each lap. + + \item \textbf{Collision and Time Limit Handling:} + A significant penalty is handled in case of collision. + % + If the number of steps exceeds a limit, an end-of-episode event is handled with a penalty. + +\end{itemize} + +The acceleration reward and lap completion reward are assigned only when the model has matured enough to complete multiple laps without collisions; otherwise, it tends to converge to a solution where the speed increases constantly, without finish any lap. -Questa metodologia integrata ha consentito l'addestramento di un modello di guida autonoma altamente adattivo, capace di gestire in modo dinamico i circuiti di gara e di ottimizzare le prestazioni in risposta a variazioni ambientali e specificità della pista. Nella sezione successiva, presenteremo i risultati dei nostri esperimenti, evidenziando le capacità e le limitazioni del nostro approccio. +% +% +% +\subsubsection{General model} +The model was trained on 18 different tracks, which were randomly selected with a randomized spawn of the car on the track. As a result, it completes eight tracks with a success rate of 100\%, never completes six tracks, and occasionally completes the remaining five tracks, with variations in success and failure. +\begin{figure}[h] + \centering + \includegraphics[width=0.485\textwidth]{img/GeneralModel.png} + \caption{General model, trained using all the map at the same time} + \label{fig:general_train} +\end{figure} + +% +% +% +\subsubsection{General Model + YasMarina Model} +At this point, a track that the model consistently failed to complete, specifically YasMarina, was selected. A training cycle was then conducted on this track with the speed optimization active. The resulting model not only mastered YasMarina perfectly, achieving a significant improvement in lap time, but also exhibited positive transfer effects on other tracks. This led to an overall enhancement in the model's performance, indicating that it did not overfit the YasMarina track but instead generalized the knowledge gained from YasMarina to improve its performance on other tracks. + +\begin{figure}[h] + \centering + \includegraphics[width=0.485\textwidth]{img/General + YasMarina Model.png} + \caption{General model + YasMarina trained model} + \label{fig:YasMarina_train} +\end{figure} + +\begin{figure}[h] + \centering + \includegraphics[width=0.485\textwidth]{img/Speed Optimization YasMarina.png} + \caption{YasMarina Speed Optimizazion} + \label{fig:YasMarina_Speed_primization} +\end{figure} % % @@ -317,7 +392,7 @@ \subsection{Model Usage} # Model loading self.model = PPO.load(path) - # ROS2 Sub & Pub + # ROS self.lidar_sub = self.create_sub(callback) self.drive_pub = @@ -350,6 +425,8 @@ \subsection{Model Usage} \end{pmatrix} \end{equation*} +\medskip + \begin{python} def callback(self, data): distances = normalize(data) @@ -366,17 +443,111 @@ \subsection{Model Usage} % % % -\section{Esperimenti} +\subsubsection*{Docker \& multiplatform} -\begin{itemize} - \item Descrizione delle condizioni sperimentali, tra cui la configurazione dell'addestramento, la scelta dei parametri, ecc. +% TODO - \item Presentazione dei risultati ottenuti durante i vostri esperimenti. +% +% +% +\section{Usage} + +% \begin{itemize} +% \item Descrizione delle condizioni sperimentali, tra cui la configurazione dell'addestramento, la scelta dei parametri, ecc. + +% \item Presentazione dei risultati ottenuti durante i vostri esperimenti. - \item Analisi dei risultati, comprese le prestazioni del modello su diversi circuiti. +% \item Analisi dei risultati, comprese le prestazioni del modello su diversi circuiti. + +% \end{itemize} + +% +% +% +\subsection{Installation} + +You can find everything about the project at the following link: \url{https://github.com/zucchero-sintattico/svs-f1tenth_gym}. + +\begin{enumerate} + \item Requirements: python 3.8, docker. + + \item \emph{(Optional)} | Create a python environment. + + \item Install the dependencies: +\begin{verbatim} +$ (svs-f1tenth_gym/) pip install -e . +\end{verbatim} +\end{enumerate} + +% +% +% +\subsection{Model training API} +The model training API that use F1tenth Gym environment has a CLI in order to: + +\begin{itemize} + \item Train the model +\begin{verbatim} +$ python src/main.py train +\end{verbatim} + + \item Run the trained model +\begin{verbatim} +$ python src/main.py run +\end{verbatim} + + \item Evaluate the model +\begin{verbatim} +$ python src/main.py evaluate +\end{verbatim} \end{itemize} +For specific parameters for each program, you can use the CLI documentation: +\begin{verbatim} +$ python src/main.py --help +\end{verbatim} + +% +% +% +\subsection{Model ROS usage API} + +\begin{enumerate} + \item (Optional) build the image from Dockerfile (modify the docker-compose file accordingly.): +\begin{verbatim} +$ docker build -f Dockerfile-gym-ros . +\end{verbatim} + + \item Run the docker compose file: +\begin{verbatim} +$ docker compose \ + -f docker-compose-ros-env.yml up +\end{verbatim} + + \item Attach to the ROS2 running container: +\begin{verbatim} +$ docker exec \ + -it svs-f1tenth_gym-sim-1 /bin/bash +\end{verbatim} + + \item Attach to the ROS2 running container and run the simulator: +\begin{verbatim} +$ ros2 launch f1tenth_gym_ros \ + gym_bridge_launch.py +\end{verbatim} + + \item Open \url{http://localhost:8080/vnc.html}. + + \item Run the node for autonomous driving the car: +\begin{verbatim} +$ ros2 run car_node car +\end{verbatim} +\end{enumerate} + +% +% +% \section{Discussione} \begin{itemize} @@ -388,6 +559,8 @@ \section{Discussione} \end{itemize} +% TODO + \section{Conclusioni} \begin{itemize} @@ -397,6 +570,8 @@ \section{Conclusioni} \end{itemize} +% TODO + \bibliographystyle{IEEEtran} \bibliography{bibliography}