Skip to content

Commit

Permalink
Merge pull request #4 from fdila/chapter-sviluppo
Browse files Browse the repository at this point in the history
Chapter sviluppo
  • Loading branch information
fdila authored Jul 26, 2020
2 parents a06775f + 7b952e7 commit 8d8f635
Show file tree
Hide file tree
Showing 26 changed files with 248 additions and 83 deletions.
55 changes: 0 additions & 55 deletions presentazione/beamer2thesis_ita.tex

This file was deleted.

2 changes: 1 addition & 1 deletion presentazione/beamerinnerthemetorinoth.sty
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@
{
% Logo & Ateneo
\begin{centering}
\begin{beamercolorbox}[rounded=true,shadow=true,ht=2.5ex,wd=.89\paperwidth,sep=3pt,center,#1]{ateneo page header}%
\begin{beamercolorbox}[rounded=true,shadow=false,ht=2.5ex,wd=.89\paperwidth,sep=3pt,center,#1]{ateneo page header}%
\usebeamerfont{ateneo}\insertateneo\par%
\end{beamercolorbox}
\vskip0.5em%
Expand Down
8 changes: 4 additions & 4 deletions presentazione/beamerouterthemetorinoth.sty
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
\hbox{%
\begin{beamercolorbox}[wd=.85\paperwidth,ht=0ex,dp=0ex]{}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.075\paperwidth,ht=.2ex,center,rounded=true,shadow=true]{frame number}%
\begin{beamercolorbox}[wd=.075\paperwidth,ht=.2ex,center,rounded=true,shadow=false]{frame number}%
\usebeamerfont{frame number}\insertframenumber{} \beamer@torinoth@pageofpages{} \inserttotalframenumber{}%
\end{beamercolorbox}%
} %
Expand All @@ -59,19 +59,19 @@
\ifx\beamer@torinoth@secondcandidate\beamer@torinoth@secondcandtext%
\begin{beamercolorbox}[wd=.2\paperwidth,ht=\beamer@torinoth@box,dp=0pt]{}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.6\paperwidth,ht=\beamer@torinoth@box,dp=0pt,center,rounded=true,shadow=true]{footerbox}%
\begin{beamercolorbox}[wd=.6\paperwidth,ht=\beamer@torinoth@box,dp=0pt,center,rounded=true,shadow=false]{footerbox}%
\usebeamerfont{footnote} \insertshorttitle \par%
\end{beamercolorbox}%
\else%
\begin{beamercolorbox}[wd=.15\paperwidth,ht=\beamer@torinoth@box,dp=0pt]{}%
\end{beamercolorbox}%
\def\beamer@torinoth@notshowauthortext{true}%
\ifx\beamer@torinoth@notshowauthor\beamer@torinoth@notshowauthortext%
\begin{beamercolorbox}[wd=.65\paperwidth,ht=\beamer@torinoth@box,sep=0.75pt,center,rounded=true,shadow=true]{footerbox}%
\begin{beamercolorbox}[wd=.65\paperwidth,ht=\beamer@torinoth@box,sep=0.75pt,center,rounded=true,shadow=false]{footerbox}%
\usebeamerfont{footnote}\insertshorttitle \par%
\end{beamercolorbox}%
\else
\begin{beamercolorbox}[wd=.65\paperwidth,ht=\beamer@torinoth@box,sep=0.75pt,center,rounded=true,shadow=true]{footerbox}%
\begin{beamercolorbox}[wd=.65\paperwidth,ht=\beamer@torinoth@box,sep=0.75pt,center,rounded=true,shadow=false]{footerbox}%
\usebeamerfont{footnote}\insertauthor{} \beamer@torinoth@separator{} \insertshorttitle \par%
\end{beamercolorbox}%
\fi%
Expand Down
8 changes: 4 additions & 4 deletions presentazione/beamerthemeTorinoTh.sty
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@
urlcolor=alerted text.fg,
linkcolor=alerted text.fg,
pdfinfo={%
Title={\inserttitle},%
Author={\insertauthor},%
Subject={\beamer@torinoth@subject},%
Title={Presentazione tesi triennale },%
Author={Federica Di Lauro},%
Subject={Sistema di controllo per base robotica outdoor},%
}
}

% Blocks
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamertemplate{blocks}[rounded][shadow=false]

\mode
<all>
File renamed without changes
Binary file added presentazione/img/crosspid.pdf
Binary file not shown.
Binary file added presentazione/img/demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentazione/img/infrastruttura.pdf
Binary file not shown.
Binary file added presentazione/img/infrastruttura1.pdf
Binary file not shown.
File renamed without changes
Binary file added presentazione/img/otto2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentazione/img/ottofinal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentazione/img/overview_tf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentazione/img/pid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentazione/img/pwm.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added presentazione/img/ros_system.pdf
Binary file not shown.
Binary file added presentazione/img/x4_encoder.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
220 changes: 220 additions & 0 deletions presentazione/main.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
\documentclass{beamer}
\usetheme[titlepagelogo=img/bicocca,% Logo for the first page
language=italian,
assistantsupervisor=true,
secondlogo=true,
bullet=triangle,
color=red,
pageofpages=di,
]{TorinoTh}

\usepackage[beamer,customcolors]{hf-tikz}
\hfsetfillcolor{alerted text.fg!10}
\hfsetbordercolor{alerted text.fg}

\usepackage{caption}

\titlepagesecondlogo{img/ira.jpg}
\author{Federica Di Lauro}
\rel{Prof. Domenico G. Sorrenti}
\assistantsupervisor{Dott. Simone Fontana}
\title{Sistema di controllo per base robotica outdoor}
\ateneo{Università degli studi di Milano-Bicocca}
\date{24 luglio 2020}

\begin{document}

\titlepageframe % Slide iniziale

\begin{tframe}{Obiettivi}

\begin{columns}
\begin{column}{0.5\textwidth}
\vspace{-10mm}
\begin{itemize}
\item Ricerca e installazione hardware mancante
\item Progettazione e sviluppo sistema di controllo su microcontrollore
\item Comunicazione con un computer e integrazione con il framework ROS
\end{itemize}
\end{column}

\begin{column}{0.48\textwidth}
\begin{center}

\begin{figure}
\centering
\includegraphics[width=0.9\columnwidth]{img/otto2.png}
\caption*{Base robotica Otto}
\end{figure}

\end{center}
\end{column}
\end{columns}
\end{tframe}

\begin{tframe}{Robot Operating System}
\begin{itemize}
\item Calcolo odometria e pubblicazione sui topic \textit{/odom} e \textit{/tf}
\item Sottoscrizione al topic \textit{/cmd\_vel} e trasmissione al microcontrollore
\end{itemize}
\vspace{5mm}
\begin{figure}
\centering
\includegraphics[width=\columnwidth]{img/overview_tf.png}
\end{figure}
\end{tframe}

\begin{tframe}{Infrastruttura hardware}
\begin{center}
\includegraphics[width=0.8\textwidth]{img/infrastruttura1.pdf}
\end{center}
\end{tframe}


%\begin{tframe}{Progettazione sistema}
%\begin{itemize}
%\item Lato microcontrollore:
%\begin{itemize}
% \item Lettura ed elaborazione dati degli encoder
% \item Controllo dei motori tramite un sistema in retroazione
% \item Comunicazione bidirezionale con un computer di controllo
%\end{itemize}
%\item Lato computer:
% \begin{itemize}
% \item Comunicazione con il microcontrollore
% \item Calcolo odometria
% \item Integrazione con ROS
%\end{itemize}
%\end{itemize}
%\end{tframe}

\begin{tframe}{Progettazione software microcontrollore}
Sviluppo bare metal, senza un sistema operativo.
\begin{itemize}
\item Task:
\begin{itemize}
\item Lettura encoder e invio dati
\item Controllo PID dei motori
\item Ricezione comandi dal computer
\end{itemize}
\item Periferiche utilizzate:
\begin{itemize}
\item Timer per interrupt periodico a 10 Hz
\item Timer per interrupt periodico a 100 Hz
\item UART con DMA
\item 2 timer per lettura encoder e 1 timer per generazione PWM
\end{itemize}
\end{itemize}

\end{tframe}

\begin{tframe}{Lettura encoder}
\begin{itemize}
\item 2 timer in modalità \textit{encoder} per la lettura
\item Calcolo di velocità lineare e angolare
\end{itemize}
\vspace{3mm}
\begin{figure}
\centering
\includegraphics[width=0.85\columnwidth]{img/x4_encoder.png}
\end{figure}

\end{tframe}

\begin{tframe}{Ponte H}
Modalità di operazione \textit{sign-magnitude}:
\begin{itemize}
\item Direzione controllata da un pin
\item Segnale PWM per controllo velocità
\end{itemize}
\vspace{6mm}
\begin{figure}
\centering
\includegraphics[width=0.9\columnwidth]{img/pwm.jpg}
\end{figure}
\end{tframe}

\begin{tframe}{Controllo PID (1)}
\vspace{10mm}
\begin{figure}
\centering
\includegraphics[width=0.9\columnwidth]{img/pid.png}
\caption*{Schema di un controllore PID}
\end{figure}
\end{tframe}

\begin{tframe}{Controllo PID (2)}
\begin{figure}
\centering
\includegraphics[width=0.8\columnwidth]{img/crosspid.pdf}
\caption*{Schema del sistema di controllo finale}
\end{figure}
\end{tframe}


\begin{tframe}{Comunicazione}

\begin{block}{Lato microcontrollore}
\begin{itemize}
\item Periferica UART con DMA
\item Libreria \textit{nanopb}
\end{itemize}
\end{block}

\begin{block}{Lato computer}
\begin{itemize}
\item Modulo FTDI
\item Libreria \textit{pyserial}
\item Libreria \textit{Protocol Buffers}
\end{itemize}
\end{block}
\end{tframe}

\begin{tframe}{Testing e conclusioni}

\begin{itemize}
\item Nodo ROS per pubblicare su \textit{/cmd\_vel} attraverso un joypad
\item Visualizzazione odometria con RVIZ
\end{itemize}

\vspace{3mm}

\begin{figure}[h]
\centering
\includegraphics[scale=0.16]{img/demo.png}
\caption*{\href{https://youtu.be/fEhBCXqMYPw}{Link video demo Otto}}
\end{figure}
\centering
\end{tframe}


\begin{tframe}
\centering
\Huge \textsc{Grazie per l'attenzione}

\vspace{5mm}

\begin{columns}
\begin{column}{0.45\textwidth}
\begin{figure}
\centering
\includegraphics[width=0.4\columnwidth]{img/bicocca.jpg}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=0.4\columnwidth]{img/ira.jpg}
\end{figure}
\end{column}

\begin{column}{0.45\textwidth}
\begin{center}
\begin{figure}
\centering
\includegraphics[scale=0.5]{img/ottofinal.png}
\end{figure}
\end{center}
\end{column}
\end{columns}
\end{tframe}

\end{document}
2 changes: 1 addition & 1 deletion relazione/capitoli/1-introduzione.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ \chapter{Introduzione}
Il lavoro è stato articolato nelle seguenti fasi:

\begin{enumerate}
\item \textbf{Ricerca e installazione dell'hardware}. La base robotica presente in laboratorio IRA non era completa, in quanto mancavano alcune componenti elettroniche. È stato quindi necessario innanzitutto scegliere e acquistare il nuovo hardware, e procedere con l'installazione a bordo del robot.
\item \textbf{Ricerca e installazione dell'hardware}. La base robotica presente in laboratorio IRALab non era completa, in quanto mancavano alcune componenti elettroniche. È stato quindi necessario innanzitutto scegliere e acquistare il nuovo hardware, e procedere con l'installazione a bordo del robot.
\item \textbf{Analisi dei requisiti e progettazione}. È stata fatta un'analisi dei requisiti per garantire i vincoli sopraelencati ed è stata effettuata un'adeguata progettazione del software, sia per quanto riguarda il microcontrollore che per il nodo ROS.
\item \textbf{Sviluppo software microcontrollore}. È stato sviluppato il software per poter leggere i sensori, controllare i motori ed effettuare la comunicazione con il computer.
\item \textbf{Sviluppo nodo ROS}. È stato sviluppato un nodo ROS per poter fare da ponte tra il microcontrollore e il framework ROS
Expand Down
8 changes: 4 additions & 4 deletions relazione/capitoli/2-strumenti.tex
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ \section{STM32CubeIDE}
\item Debugging avanzato che comprende feature come:
\begin{itemize}
\item Visualizzazione di CPU core, registri delle periferiche e memoria
\item Visione delle variabili live
\item Visualizzazione delle variabili live
\item Analisi del sistema e tracing in tempo reale
\item Tool di analisi dei CPU fault
\end{itemize}
Expand Down Expand Up @@ -70,9 +70,9 @@ \section{Protocol Buffers}


\section{sigrok Pulseview}
sigrok è una suite di software per l'analisi dei segnali, sfruttando dispositivi come oscilloscopi e analizzatori logici.
sigrok è una suite di software per l'analisi dei segnali, che sfrutta dispositivi come oscilloscopi e analizzatori logici.

Pulseview è l'interfaccia grafica usata per sfruttare questi tool e permette di interfacciarsi con i dispositivi sopracitati visualizzando il segnale in tempo reale, analizzandone i tempi e consente inoltre la decodifica di segnali digitali.
Pulseview è l'interfaccia grafica usata per sfruttare questi tool e permette di interfacciarsi con i dispositivi sopracitati visualizzando il segnale in tempo reale, analizzandone i tempi e consentendo inoltre la decodifica di segnali digitali.

In particolare per questo progetto è stato usato Pulseview con un analizzatore logico per facilitare il debugging nella trasmissione dei segnali, ad esempio la trasmissione seriale di messaggi.

Expand All @@ -82,4 +82,4 @@ \section{sigrok Pulseview}
\caption{Acquisizione e decodifica di un segnale UART}
\end{figure}

Pulseview è un progetto open source e liberamente scaricabile dal sito ufficiale\cite{Pulseview}.
Pulseview è un progetto open source e liberamente scaricabile dal sito ufficiale \cite{Pulseview}.
2 changes: 1 addition & 1 deletion relazione/capitoli/3-hardware.tex
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ \section{Base robotica VolksBot RT 3}
\end{figure}

\section{Encoder}
Un encoder è dispositivo elettromeccanico in grado di convertire la posizione o il moto angolare in un codice digitale.
Un encoder è un dispositivo elettromeccanico in grado di convertire la posizione o il moto angolare in un codice digitale.

Nel nostro caso è stato montato un encoder in quadratura sull'asse del motore di ciascuna ruota motrice.
Questo tipo di sensore è formato da un LED, da una corona circolare con un pattern fisso che si ripete e da dei fotodiodi.
Expand Down
Loading

0 comments on commit 8d8f635

Please sign in to comment.