% -------------------------------------------------------------
% |  Template de tese da UA, em língua portuguesa             |
% |  Lista completa de opções e comandos em uaThesis.sty      |
% -------------------------------------------------------------
% |  Fevereiro, 2011                                          |
% |  Universidade de Aveiro                                   |
% |  Criado por T. Oliveira e Silva                           |
% |  Modificado/adaptado por F. Teixeira-Dias & M. Paulino    |
% -------------------------------------------------------------
\documentclass[11pt,twoside,a4paper,openright]{report}    % Estilo relatório
                                                  % openright: página inicial de cada capítulo sempre ímpar                                                 
% -------------------------------------------------------------
% Preâmbulo do documento - pacotes
% -------------------------------------------------------------
% Package para teses UA
%\usepackage[usecolor,newLogo,DEM]{uaThesis}              % provisório
\usepackage[usecolor,newLogo,DEM,final]{uaThesis}       % final

%
\usepackage{amssymb}                              % Símbolos da American Mathematical Society
\usepackage[citebordercolor={1 1 1},linkbordercolor={1 1 1}]{hyperref}       % Links activos no pdf
                                                  % Opção citebordercolor={0.9 0.9 0.9} para cor do border
                                                  % Opção linkbordercolor={0.9 0.9 0.9} para cor do border
\usepackage{textcomp}                             % Símbolos e caracteres especiais
\usepackage{indentfirst}                         % Indentação do primeiro parágrafo de cada secção
\usepackage{fancyhdr}                             % Utilização de fancy headings
%\usepackage[square,sort&compress]{natbib}         % Ordenação e gestão de referências bibliográficas
\usepackage{epsfig}                               % Permite utilização de figuras em formato EPS
\usepackage{subfig}                               % Ambiente para gestão de subfiguras
\usepackage{multirow}                             % Agrupamento de linhas em tabelas
\usepackage{layout}
%\usepackage{citesort}
\usepackage{graphicx}   %to inlcude images

\usepackage{caption} % to include space between caption and table
\captionsetup[table]{skip=10pt}

\usepackage{array}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\newcolumntype{L}{>{\bfseries}l}
\usepackage{float}
\usepackage{tikz}
\usepackage{booktabs}
\usepackage[final]{pdfpages}
\usepackage{listings}
\usepackage{color}
\usepackage[space]{grffile}
\raggedbottom
\usepackage[toc]{appendix}
\usepackage[acronym,automake]{glossaries}
\makeglossaries
%\glstoctrue


\newacronym{lar}{LAR}{Automation and Robotics Laboratory}
\newacronym{ros}{ROS}{Robot Operating System}
\newacronym{phua}{PHUA}{Humanoid Project of the University of Aveiro}
%\newacronym{dem}{DEM}{Department of Mechanical Engineering}
%\newacronym{deti}{DETI}{Department of Electronics, Telecommunications and Informatics}
\newacronym{dof}{DoF}{Degrees of Freedom}
\newacronym{imu}{IMU}{Inertial Measurement Unit}
%\newacronym{cop}{CoP}{Center of Pressure}
\newacronym{ptu}{PTU}{Pan-Tilt Unit}
\newacronym{rtu}{RTU}{Roll-Tilt Unit}
\newacronym{pd}{PD}{Proportional-Derivative}
\newacronym{visp}{ViSP}{Visual Servoing Platform}
%\newacronym{vor}{VOR}{Vestibulo-Ocular Reflex}
%\newacronym{zmp}{ZMP}{Zero Moment Point}
%\newacronym{com}{CoM}{Center of Mass}
\newacronym{opencv}{OpenCV}{Open Source Computer Vision Library}
%\newacronym{ui}{UI}{User Interface}
%\newacronym{rad}{RAD}{Rapid-Application Development}
%\newacronym{xml}{XML}{Extensible Markup Language}
\newacronym{tp}{TP}{Teach Pendant}


\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}

\lstdefinestyle{customc}{
	belowcaptionskip=1\baselineskip,
	breaklines=true,
	frame=L,
	xleftmargin=\parindent,
	language=C,
	showstringspaces=false,
	basicstyle=\footnotesize\ttfamily,
	keywordstyle=\bfseries\color{green!40!black},
	commentstyle=\itshape\color{purple!40!black},
	identifierstyle=\color{blue},
	stringstyle=\color{orange},
}

\lstset{escapechar=@, style=customc}

\renewcommand{\lstlistingname}{Code snippet}
\renewcommand*{\lstlistlistingname}{List of code snippets}
% -------------------------------------------------------------
% Preâmbulo do documento - Escrita em língua portuguesa
% -------------------------------------------------------------
\usepackage[latin1]{inputenc}                     % Caracteres acentuados do Português
%\usepackage[utf8]{inputenc}
%\usepackage[portuguese]{babel}                    % Hifenização e títulos
\usepackage[T1]{fontenc}                          % Codificação das fontes
\usepackage{lmodern}	% font definition


%--------------Including Biblatex package---------------------------

\usepackage[backend=bibtex, sorting=none]{biblatex}
\addbibresource{myBib.bib}  %The file with related publications


% -------------------------------------------------------------
% Preâmbulo do documento - Definições da tese
% -------------------------------------------------------------
\newcommand{\authorname}{Jorge Manuel das Neves Martins de Sousa}         % Nome do autor da tese
\newcommand{\thesistitle}{Estimação de Verticalidade Usando a Estabilização de uma Cabeça Humanóide\\ \vspace{5mm}Verticality Estimation Using Stabilization of a Humanoid Head} % Título da tese
%Estimação de Verticalidade usando a Estabilização de uma Cabeça Humanóide

\newcommand{\thesisyear}{2017}                                % Ano da tese
\newcommand{\thesisdegree}{Master}                          % Grau
\newcommand{\sciarea}{Mechanical Engineering}                    % Área científica da tese
% -------------------------------------------------------------
% Preâmbulo do documento - Equipa de orientação
% -------------------------------------------------------------
\newcommand{\profdoc}{Prof. Doutor}                           % Grau geral
\newcommand{\supervisor}{Vítor Manuel Ferreira dos Santos}                  % Orientador
\newcommand{\supdegree}{Professor Associado}                   % Grau académico do orientador
\newcommand{\supfili}{Departamento de Engenharia Mecânica}    % Filiação do orientador
\newcommand{\cosupervisor}{Filipe Miguel Teixeira Pereira da Silva}        % Co-orientador
\newcommand{\cosupdegree}{Professor Auxiliar}              % Grau académico do co-orientador
\newcommand{\cosupfili}{Departamento de Eletrónica, Telecomunicações e Informática}     % Filiação do co-orientador
\newcommand{\cosupuni}{Universidade de Aveiro}                 % Instituição do co-orientador
% -------------------------------------------------------------
% Preâmbulo do documento - Membros do júri
% -------------------------------------------------------------
\newcommand{\tribpresident}{Rui António da Silva Moreira}                    % Presidente do júri
\newcommand{\tribpresidentcat}{Professor Auxiliar}         % Categoria do presidente do júri
\newcommand{\tribi}{João Paulo Morais Ferreira}                  % Elemento do júri 1
\newcommand{\tribicat}{Professor Adjunto}                   % Categoria do elemento do júri 1
\newcommand{\tribifili}{Instituto Superior de Engenharia de Coimbra}              % Filiação do elemento do júri 1
%\newcommand{\tribii}{Nuno Freitas Crato}                      % Elemento do júri 2
%\newcommand{\tribiicat}{Professor Auxiliar}                   % Categoria do elemento do júri 2
%\newcommand{\tribiifili}{Instituto Superior de Gestão}        % Filiação do elemento do júri 2


% -------------------------------------------------------------
% Preâmbulo do documento - Outros comandos
% -------------------------------------------------------------
\newcommand{\dd}{\textrm{d}}                                  % Operador diferencial
\newcommand{\ngs}{\sigma}                                     % Sigma minúsculo
\newcommand{\nga}{\alpha}                                     % Alfa minúsculo
\newcommand{\ngb}{\beta}                                      % Beta minúsculo


% -------------------------------------------------------------
% Preâmbulo do documento - Margens e mancha gráfica
% -------------------------------------------------------------
\setlength{\textwidth}{147mm}                                 % Largura da mancha gráfica
\setlength{\textheight}{225mm}                                % Altura da mancha gráfica
\setlength{\topmargin}{0mm}                                   % Margem de topo (default=1in)
\setlength\oddsidemargin{5mm}                                 % Margem direita páginas direitas
\setlength\evensidemargin{5mm}                                % Margem esquerda páginas esquerdas



% -------------------------------------------------------------
% Início do documento
% -------------------------------------------------------------
\begin{document}


% -------------------------------------------------------------
% Definição da capa (com e sem figuras)
% -------------------------------------------------------------
\iffalse                                  % \iffalse: capa sem imagem, \iftrue: capa com imagem
   \TitlePage                             % Capa da tese com uma imagem
%      \DRAFT                             % Escreve "Documento Provisório" na página inicial
%      \GRID                              % Desenha grelha rectangular de 3mm
      \HEADER{\BAR\FIG{\includegraphics{./Imagens/nice.pdf}}}    % Imagem para a capa
             {\thesisyear}
      \TITLE{\authorname}
            {\thesistitle}
   \EndTitlePage
\else
   \TitlePage                                    % Capa da tese sem imagens, com citação
%      \DRAFT                                    % Escreve "Documento Provisório" na página inicial
%      \GRID                                     % Desenha grelha rectangular de 3mm
      \HEADER{\BAR\FIG{\begin{minipage}{100mm}   % Largura da caixa da citação (<120mm)
             {}    % Citação 1. Colocar {} para retirar citação
         \begin{flushright}
             {}  % Citação 2. Colocar {} para retirar citação
         \end{flushright}
      \end{minipage}}}
          {\thesisyear}
      \TITLE{\authorname}
            {\thesistitle}
\EndTitlePage
\fi
\titlepage\ \endtitlepage                        % Página de verso em branco


% -------------------------------------------------------------
% Definição da capa interior
% -------------------------------------------------------------
\TitlePage
%   \PGRID                                       % Desenha grelha rectangular de 3mm
   \HEADER{}{\thesisyear}
   \TITLE{\authorname}
        {\thesistitle}
  \vspace*{15mm}
  \TEXT{}
       {Dissertação apresentada à Universidade de Aveiro para cumprimento dos requisitos necessários à obtenção do grau de Mestre em Engenharia Mecânica, realizada sob orientação científica de \supervisor, \supdegree{} do \supfili{} da Universidade de Aveiro e de \cosupervisor, \cosupdegree{} do \cosupfili{} da \cosupuni.}
\EndTitlePage
\titlepage\ \endtitlepage                        % Página de verso em branco


% -------------------------------------------------------------
% Definição da página do júri da dissertação (PT/EN)
% -------------------------------------------------------------
\TitlePage
  \vspace*{55mm}
  \TEXT{\textbf{O júri~/~The jury\newline}}
       {}
  \TEXT{Presidente~/~President}
       {\textbf{\profdoc{} \tribpresident}\newline {\small
        \tribpresidentcat{} da Universidade de Aveiro}}
  \vspace*{5mm}
  \TEXT{Vogais~/~Committee}
       {\textbf{\profdoc{} \tribi}\newline {\small
        \tribicat{} do \tribifili}}
  \vspace*{5mm}
  \TEXT{}
       {\textbf{\profdoc{} \supervisor}\newline {\small
         		\supdegree{} da Universidade de Aveiro (orientador)}}
%  \vspace*{5mm}
%  \TEXT{}
%       {\textbf{\profdoc{} \cosupervisor}\newline {\small
%       		\cosupdegree{} da Universidade de Aveiro (co-orientador)}}
%\vspace*{5mm}
%  \TEXT{}
%       {\textbf{\profdoc{} \tribii}\newline {\small
%        \tribiicat{} da \tribiifili}}
\EndTitlePage

\titlepage\ \endtitlepage                        % Página de verso em branco


% -------------------------------------------------------------
% Definição da página dos agradecimentos
% -------------------------------------------------------------
\TitlePage
  \vspace*{55mm}
  \TEXT{\textbf{Agradecimentos~/\newline Acknowledgements}}
       {Em primeiro lugar quero agradecer aos meus orientadores, o professor Vítor Santos e o professor Filipe Silva, pelo apoio que me prestaram durante esta dissertação, tanto no sentido académico como no sentido afetivo. A todos os professores que tive durante o curso, pois foram um contributo essencial para a minha formação pessoal e académica. Ao Eng. Festas, pelo tempo dispendido na maquinação das peças desenhadas e na correção dos erros nos desenhos mecânicos.}
       
  \TEXT{}{À minha família, que sempre me apoiou durante todo o meu percurso académico, acreditando que podia alcançar tudo o que almejasse. Aos amigos que fiz durante esta passagem pela Universidade de Aveiro, especialmente os colegas do Laboratório de Automação e Robótica .}
       	
  \TEXT{}{Por fim, gostaria também de agradecer à Motofil por ceder o manipulador robótico da FANUC que foi de extrema importância para as experiências feitas neste trabalho.}
\EndTitlePage
\titlepage\ \endtitlepage                        % Página de verso em branco


% -------------------------------------------------------------
% Definição da página do resumo (PT)
% -------------------------------------------------------------
\TitlePage
   \vspace*{55mm}
   \TEXT{\textbf{Palavras-chave}}
        {Estimação de Verticalidade; Estabilização da Cabeça; Robótica Humanóide; Controlo de Realimentação; Rastreamento Visual.}
   \vspace*{5mm}
   \TEXT{\textbf{Resumo}}  
        {O Projeto Humanóide da Universidade de Aveiro (PHUA) é a base desta dissertação que tem como objetivo estudar a estabilização da cabeça de um robô humanóide para efeitos de equilíbrio. Foram assim desenvolvidas soluções integradas usando o Robot Operating System (ROS). Para estabilizar a cabeça humanóide, foi estimado o vetor da gravidade (verticalidade) usando dados visuais. Para o fazer, duas soluções distintas foram abordadas, ambas baseadas na biblioteca Visual Servoing Platform (ViSP). Depois de estimada a verticalidade, a cabeça humanóide (uma câmara montada numa unidade roll-tilt) foi estabilizada recorrendo a um controlador proporcional-derivativo (PD) de posição para o servomotor responsável pelo ângulo roll e a um controlo PD de velocidade para o servomotor responsável pelo ângulo tilt. Para fazer as experiências, o sistema foi montado num manipulador robótico para permitir repetibilidade e controlo preciso de movimentos. A análise dos resultados das experiências mostra que quer a estimação da verticalidade quer a estabilização da cabeça humanóide foram tarefas realizadas com sucesso. Esta análise permite também concluir que a taxa de aquisição de imagem influencia os resultados, e que a limitada taxa do sistema usado (cerca de 15 imagens por segundo) condicionou um pouco a robustez dos resultados em situações mais exigentes.}
\EndTitlePage
\titlepage\ \endtitlepage                        % Página de verso em branco

% Apesar de a estabilização da cabeça se ter realizado com sucesso, não foi possível demonstrar os benefícios desta estabilização para a obtenção do equilíbrio de um humanóide, pois as outras tarefas consumiram mais tempo do que o planeado.

% -------------------------------------------------------------
% Definição da página do resumo (EN)
% -------------------------------------------------------------
\TitlePage
   \vspace*{55mm}
   \TEXT{\textbf{Keywords}}
        {Verticality Estimation; Head Stabilization; Humanoid Robotics; Feedback Control; Visual Tracking.}
   \vspace*{5mm}
   \TEXT{\textbf{Abstract}}
        {The Humanoid Project of the University of Aveiro (PHUA) is the basis of this dissertation, whose purpose is to study the effects of the stabilization of a humanoid head in obtaining its equilibrium. Therefore, integrated solutions using the Robot Operating System (ROS) were developed. To stabilize the humanoid head, the gravity vector (verticality) was estimated using visual data. In order to do so, two distinct solutions were approached, both based on the Visual Servoing Platform (ViSP) library. After estimating verticality, the humanoid head (a camera mounted on a roll-tilt unit) was stabilized using a proportional-derivative (PD) controller for the position of the servo responsible for the roll angle and a PD controller for the velocity of the servomotor responsible for the tilt angle. To perform the experiments, the system was mounted on a robotic manipulator to allow repeatability and precise movement control. An analysis to the experiment results shows that both the verticality estimation and head stabilization tasks were performed successfully. This analysis also allows for the conclusion that the image frame rate influences results, and that the limited frame rate of the system used (about 15 frames per second) slightly conditioned the robustness of results in more demanding scenarios.}
\EndTitlePage
\titlepage\ \endtitlepage                        % Página de verso em branco

%Although the head stabilization was done successfully, it was not possible to demonstrate the benefits of this stabilization in regards to obtaining its equilibrium since the other tasks took more time than originally planned.

% -------------------------------------------------------------
% Listas e definições iniciais da dissertação
% -------------------------------------------------------------
\pagenumbering{roman}          % Numeração romana para as primeiras páginas
\tableofcontents               % Índice da dissertação
\listoftables                  % Lista de tabelas
\listoffigures                 % Lista de figuras
\lstlistoflistings
\printglossary[type=\acronymtype, title=Acronyms]
\clearpage
\titlepage\ \endtitlepage      % Página de verso em branco
\pagenumbering{arabic}         % Numeração árabe para as páginas restantes


% ----------------------------------------------------------------
% Definicao de headers e footers
% ----------------------------------------------------------------
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.#1}{}} % Capítulos em minúsculas
\fancyhf{}                                                  % Reset aos headers e footers
  \fancyhead[LE,RO]{\thepage}                               % Header Left-Even (LE), Right-Odd (RO)
  \fancyhead[LO]{\leftmark}                                 % Header Left-Odd (LO)
  \fancyhead[RE]{\leftmark}                                 % Header Right-Even (RE)
  \fancyfoot[LE]{\authorname}                               % Footer Left-Even (LE)
  \fancyfoot[LO]{\authorname}                               % Footer Left-Odd (LO)
  \fancyfoot[RE]{\textit{\thesisdegree's Dissertation}}     % Footer Right-Even (RE)
  \fancyfoot[RO]{\textit{\thesisdegree's Dissertation}}     % Footer Right-Odd (RO)
  \renewcommand{\headrulewidth}{0.25pt}                     % Espessura da linha de header
  \renewcommand{\footrulewidth}{0.25pt}                     % Espessura da linha de footer
  \addtolength{\headheight}{0.5pt}                          % Espaçamento para a linha


% ----------------------------------------------------------------
% Corpo da tese - Parte I - Enquadramento
% ----------------------------------------------------------------
\chapter{Introduction}
%\input{Intro/JSousa_intro_old}
\input{Intro/JSousa_intro}


% ----------------------------------------------------------------
% Corpo da tese - Parte II - Hardware e Software
% ----------------------------------------------------------------
\chapter{Experimental Infrastructure}
\input{HW_SW/JSousa_HW_SW}

% ----------------------------------------------------------------
% Corpo da tese - Parte III - Solução proposta
% ----------------------------------------------------------------
\chapter{Proposed solution}

\input{Solution/JSousa_solution}

% ----------------------------------------------------------------
% Corpo da tese - Parte IV - Testes e resultados
% ----------------------------------------------------------------
\chapter{Experiments and results}\label{ch:4}

\input{Experiments/JSousa_experiments}
 
% ----------------------------------------------------------------
% Corpo da tese - Parte V - Conclusões e trabalho futuro
% ----------------------------------------------------------------
\chapter{Conclusions and future work}

\input{Conclusions/JSousa_conclusions}

% ----------------------------------------------------------------
% Referências bibliográficas
% ----------------------------------------------------------------
\cleardoublepage
\addcontentsline{toc}{chapter}{References}
\begingroup
\sloppy
\raggedright
\printbibliography[title={References}]
\endgroup


% ----------------------------------------------------------------
% Anexos
% ----------------------------------------------------------------
\begin{appendices}
\chapter{Technical Drawings}
\subsection*{PTU to RTU transformation}
%\vfill
%\noindent\textbf{Note:} These drawings' scales are incorrect due to the resizing applied to fit the page.
\label{draw:rtu}
\newpage
\pagestyle{empty}
%\begin{minipage}[c]{0.9\textwidth}
%	\centering
%	\includegraphics[width=\textwidth]{Drawings/L-parte1.PDF}
%\end{minipage}
\includepdf[pages=-,pagecommand={}]{Drawings/L-parte1.PDF}
\includepdf[pages=-,pagecommand={}]{Drawings/L-parte2.PDF}

\pagestyle{fancy}
\subsection*{Chessboard connection to manipulator}
\vfill
\noindent\textbf{Note:} The ``Chessboard back - part 1'' drawing was rescaled to fit onto an A4 page.
\newpage
\pagestyle{empty}
\includepdf[pages=-,pagecommand={},angle=90]{Drawings/chapa(melhorescotas).PDF}
\includepdf[pages=-,pagecommand={}]{Drawings/Chapa_2.PDF}
\includepdf[pages=-,pagecommand={}]{Drawings/robo_L-Parte1.PDF}
\includepdf[pages=-,pagecommand={}]{Drawings/robo_L-Parte2.PDF}

\pagestyle{fancy}
\subsection*{RTU connection to tripod}
\label{draw:tripod}
\newpage
\pagestyle{empty}
\includepdf[pages=-,pagecommand={}]{Drawings/estrutura.PDF}
\includepdf[pages=-,pagecommand={}]{Drawings/estrutura_L-parte1.PDF}
\includepdf[pages=-,pagecommand={}]{Drawings/estrutura_L-parte2.PDF}
\end{appendices}


%\section*{Appendix B - Dependencies}
%
%\section*{Appendix C - Utilization Instructions}








% ----------------------------------------------------------------
% Fim do documento
% ----------------------------------------------------------------
\end{document}

