\chapter{Introdução}\label{ch:introducao}
\thispagestyle{myheadings}
Neste capítulo será feita uma pequena descrição do projeto em que esta dissertação se enquadra.

% -------------------------------------------------------------
% Projeto ATLAS
% -------------------------------------------------------------
\section{Projeto Atlas}\label{sec:projeto_atlas}
O projeto ATLAS foi criado pelo grupo de Automação e Robótica do Departamento de Engenharia Mecânica da Universidade de Aveiro, com o principal objetivo de desenvolver novas soluções na área da condução autónoma. A principal motivação para o início deste projeto foi a participação no Festival Nacional de Robótica em 2003, no qual atingiu o quarto lugar, vencendo depois todas as edições de 2006 até à última participação em 2011. Na figura \ref{fig:atlas_mv} são apresentados 2 protótipos de robôs Atlas para a participação na prova.

\begin{figure}[H]
\centering
\includegraphics[width=6cm]{Imagens/atlas_mv}
\caption[Atlas 2010 e Atlas MV]{Atlas 2010 (esquerda) e Atlas MV (direita)}
\label{fig:atlas_mv}
\end{figure}\vfill

No seguimento dos vários triunfos obtidos pelos robôs Atlas em pista de ambiente interior, surgiu o desafio de desenvolver um protótipo à escala real, extrapolando muitas das técnicas já implementadas nos vencedores e fazendo com que essas fossem uma mais valia para aplicações reais, tendo como principal objetivo o auxílio à condução evitando situações de perigo, como colisões com veículos, obstáculos e o mais importante com peões, uma vez que são os elementos mais vulneráveis nas vias de circulação automóvel. O protótipo em desenvolvimento desde 2010 é o  AtlasCar, figura \ref{fig:atlascar}.
Trata-se de um automóvel adaptado com sensores e atuadores para que a sua condução seja possível quer por um condutor quer por um computador. Entre a lista de sensores conta com dois lasers 2D na frente do carro, com um laser 2D adaptado para fazer leituras 3D no tejadilho, com uma câmara stereo, duas câmaras, sensor de GPS, uma unidade inercial (\textit{IMU}), um encoder acoplado a uma roda e 4 sensores de altura colocados na parte inferior do carro. Em relação aos atuadores, tem um sistema de direção adaptado, o acelerador é controlado eletronicamente,  o travão e a embraiagem são atuados recorrendo a duas caixas com motores elétricos para que o seu controlo seja possível eletronicamente, \citep{tese_do_rocha_2011}.
   
 \begin{figure}[H]
\centering
\includegraphics[width=6cm]{Imagens/atlascar_semfundo}
\caption[AtlasCar]{AtlasCar, modelo Ford Escort SW de 1998, com os sensores}
\label{fig:atlascar}
\end{figure}%\vfill

% -------------------------------------------------------------
%		OBJETIVOS
% -------------------------------------------------------------
\section{Objetivos}\label{sec:intro_objetivos}
O trabalho apresentado tem como principais objetivos a criação de um sistema de paragem de emergência e um sistema de monitorização remota para o AtlasCar. O desenvolvimento de um sistema remoto de paragem de emergência para o Atlascar (E-STOP), de acordo com as regras de participação no ELROB \ref{sec:elrob_comp}, mas que também possa ser usado durante testes ou demonstrações. Utilizando para o efeito uma consola de controlo de radiofrequência, sendo esta o mais independente possível do software a correr nos computadores do veículo, recorrendo a unidades de micro controladores dedicados ou similires. Deve-se ainda procurar fazer a integração do sistema desenvolvido com a atual unidade de controlo do Atlascar(Gamepad XBOX). Pretende-se também o desenvolvimento de um módulo de software que emule um painel de monitorização remota do estado da máquina, usando como suporte de comunicação um protocolo TCP/IP ou similar. 


%O sistema E-Stop a desenvolver tem de respeitar as regras de participação no ELROB\ref{sec:elrob_comp}, podendo ser usado como sistema de segurança durante testes e demonstrações. Utilizando para o efeito uma consola de controlo de radiofrequência, tendo esta de ser o mais independente possível do software existente a bordo do veículo, recorrendo a unidades de micro controladores dedicados ou similares. O sistema a desenvolver terá de ser integrado com a atual unidade de controlo remoto do Atlascar(Gamepad XBOX).
%\newline
%E o desenvolvimento de um módulo de software que emule um painel de monitorização remota do estado da máquina, usando como suporte de comunicação remota um protocolo TCP/IP ou similar.



% de emergência remoto e um sistema de monitorização para o Atlascar.
%O desenvolvimento de um sistema remoto de paragem de emergência para o Atlascar(E-STOP), de acordo com as regras de participação no ELROB, mas que também possa ser usado durante testes ou demonstrações. Utilizando para o efeito uma consola de controlo de radiofrequência, sendo esta o mais independente possível do software a correr nos computadores do veículo, recorrendo a unidades de micro controladores dedicados ou similares. Integração do sistema desenvolvido com a atual unidade de controlo do Atlascar(Gamepad XBOX).
%O desenvolvimento de um módulo de software que emule um painel de monitorização remota do estado da máquina, usando como suporte de comunicação remota um protocolo TCP/IP ou similar.



%Este trabalho tem como principais objetivos a criação e desenvolvimento um sistema remoto de paragem de emergência para o ATLASCAR (E-Stop), respeitando as regras de participação no ELROB, mas podendo ser usado como um elemento de segurança durante testes, utilizando para o efeito uma consola de controlo de radio frequência. O sistema a implementar tem que ser o mais independente possível do software a correr nos computadores do veículo, recorrendo a unidades de micro controladores dedicados, podendo ser integrado com a atual unidade de controlo remoto do carro (gamepad Xbox). E o desenvolvimento de um módulo de software que emule um painel de monitorização remota do estado do veículo em qualquer instante, usando um suporte de comunicação remota sobre TCP/IP. 
%O termo segurança aparece sempre relacionado com a condução, e ainda mais quando se trata de veículos autónomos, pois as máquinas também podem falhar, e nessa altura tem de ser possível imobilizar o veículo. É nesse âmbito que surge este trabalho, implementar um sistema que em caso de falha seja possível imobilizar o autómato, independente do software implementado no veículo.
%Sendo este um elemento necessário à participação no \textbf{ELROB}, em seguida será apresentada a metodologia levada a cabo para implementação do sistema em causa.


% -------------------------------------------------------------
% 		TRABALHOS RELACIONADOS EM VEZ DE ESTADO DA ARTE
% -------------------------------------------------------------
\section{Trabalhos relacionados}\label{sec:intro_trabalhos_relacionados}

% +++++++++++++ OUTROS VEICULOS AUTONOMOS EXISTENTES +++++++++++++
\subsection{Veículos Autónomos}\label{sec:veiculos_auto}

A condução autónoma é um assunto que tem entusiasmado e motivado vários grupos de investigação pelo mundo fora desde a segunda metade do século vinte desenvolvendo protótipos de veículos autónomos. Alguns dos que fizeram história serão apresentados na seguinte tabela:

\begin{table}[H]
  \centering
  \begin{tabular}[!h]{c c c c}
    \hline
    Ano & Nome do projeto & Objetivos & Veículo\\\hline
 
	\begin{minipage}[c]{.09\textwidth}
     	1970's
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
			\textit{Stanford Car}
     	\citep{stanfordcar_auto}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     Apenas uma câmara.
     	Controlo remoto c/ cabo.
\end{minipage}
        &
    \begin{minipage}{.21\textwidth}
      \includegraphics[width=3cm]{Imagens/first_autonomous}
    \end{minipage}


    \\\hline

	\begin{minipage}[c]{.09\textwidth}
     	1980's
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
		  \textit{VaMoRs}\\
     	\citep{vamors_van}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     Identificar as linhas de uma
     	auto estrada.
    \end{minipage}
        &
    \begin{minipage}{.21\textwidth}
      \includegraphics[width=3cm]{Imagens/inibw_van}
    \end{minipage}


    \\\hline    
    
    \begin{minipage}[c]{.09\textwidth}
     	1994
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
		  \textit{VaMoRs-P}
  		  \citep{vamorsp_car}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Identificação de estrada
     	 e objetos.
    \end{minipage}
        &
    \begin{minipage}{.21\textwidth}
      \includegraphics[width=3cm]{Imagens/1919686531_3718f04f0a}
    \end{minipage}


    \\\hline
    \begin{minipage}[c]{.09\textwidth}
     	1995
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
     	\textit{Navlab 5}
     	\newline
     	\citep{navlab_van}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	\textit{"No Hands Across America."}
     	\newline
     	98\% do percurso cumprido em modo totalmente autónomo
    \end{minipage}
        &
    \begin{minipage}{.21\textwidth}
      \includegraphics[width=3cm]{Imagens/navlab5_2}
    \end{minipage}
    \\\hline 
%%       
    \begin{minipage}[c]{.09\textwidth}
     	1996
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
     	\textit{ARGO}
     	\newline
     	\citep{paper_argo}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Primeiro protótipo desenvolvido com o objetivo de ter componentes \textit{low-cost}.
    \end{minipage}
        &
    \begin{minipage}[c]{.21\textwidth}
    
      \includegraphics[width=3cm]{Imagens/argo_project}
    \end{minipage}
    \\\hline
     \begin{minipage}[c]{.09\textwidth}
     	2004
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
     	\textit{DARPA - the Grand Challenge}
     	\newline
     	\citep{darpa_comp_site}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Primeira competição de veículos autónomos.
     	Nenhum dos concorrentes completou o percurso de 150 milhas
    \end{minipage}
        &
    \begin{minipage}[c]{.21\textwidth}
    
      \includegraphics[width=3cm]{Imagens/1st_darpa}
    \end{minipage}
    \\ \hline
    
	\begin{minipage}[c]{.09\textwidth}
     	2005
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
     	\textit{DARPA - the Grand Challenge}
     	\newline
     	\citep{darpa_comp_site}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Primeiro veículo a completar o desafio. 150milhas em 6 horas e 54 min, levou o prémio de \$ 2 milhões
    \end{minipage}
        &
    \begin{minipage}[c]{.21\textwidth}
    
      \includegraphics[width=3cm]{Imagens/1stwinner_darpa}
    \end{minipage}
    \\ \hline
    \begin{minipage}[c]{.09\textwidth}
     	2006
    \end{minipage}
    &
    \begin{minipage}[c]{.2\textwidth}
     	\textit{DARPA- Urban Challenge}
     	\newline
     	\citep{elrob_site}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Concurso DARPA mas em ambiente urbano. O vencedor que completou o percurso de 60 milhas em 4h e 10min. 
     	
    \end{minipage}
        &
    \begin{minipage}[c]{.21\textwidth}
    
      \includegraphics[width=3cm]{Imagens/darpa_urban}
    \end{minipage}
    \\ \hline      
    \begin{minipage}[c]{.09\textwidth}
     	2006
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
     	\textit{M-ELROB}
     	\newline
     	\citep{elrob_site}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Primeiro concurso europeu militar de condução autónoma.
     	
    \end{minipage}
        &
    \begin{minipage}[c]{.21\textwidth}
    
      \includegraphics[width=3cm]{Imagens/m-elrob2006}
    \end{minipage}
    \\ \hline  
    
    \begin{minipage}[c]{.09\textwidth}
     	2007
    \end{minipage}
    &
    \begin{minipage}[c]{.20\textwidth}
     	\textit{C-ELROB}
     	\newline
     	\citep{elrob_site}
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.35\textwidth}
     	Primeiro concurso civil europeu de condução autónoma.
     	
    \end{minipage}
        &
    \begin{minipage}[c]{.21\textwidth}
    
      \includegraphics[width=3cm]{Imagens/c_elrob2007}
    \end{minipage}
    
    
    \\ \hline  
  \end{tabular}
  \caption{Veículos autónomos mais relevantes da história. \citep{auto_car_historia} \citep{carros_auto_schmid}  Adaptado \citep{tese_do_joel_2012}}\label{tbl:auto_veiculos}
\end{table}
Desde a criação do primeiro veículo autónomo que a sua circulação estava restrita a  circuitos ou a ambientes controlados. Porém em junho de 2011 o estado do Nevada apresentou um projeto de lei que previa a circulação desse tipo de veículos na via publica, entrando em vigor a 1 de março de 2012, ou seja, a partir dessa data já era autorizada a circulação de veículos sem condutor nas vias desse estado. Em fevereiro de 2013 outros dois estados Americanos, Florida e Califórnia, também seguiram a lei implementada pelo estado do Nevada \citep{nevada_lei}  \citep{wiki_stanfordcar_auto}.
\newline
Nas figuras \ref{fig:google_prius} e \ref{fig:volks_stanford} são apresentados dois modelos de veículos autónomos desenvolvidos nos E.U.A., que já circularam em vias públicas ao abrigo da lei implementada nos vários estados:

%%%%\begin{figure}[h!]
%%%%        \centering
%%%%        \begin{subfigure}[c]{0.4\textwidth}
%%%%                \centering
%%%%                \includegraphics[width=6cm]{Imagens/google_prius}
%%%%                \caption{Carro autónomo desenvolvido pela Google}
%%%%                \label{fig:google_prius}
%%%%        \end{subfigure}
%%%%        ~ %add desired spacing between images, e. g. ~, \quad, \qquad etc.
%%%%          %(or a blank line to force the subfigure onto a new line)
%%%%        \begin{subfigure}[c]{0.4\textwidth}
%%%%                \centering
%%%%                \includegraphics[width=6cm]{Imagens/stanford_volks}
%%%%                \caption{Carro autónomo desenvolvido pela Universidade de Stanford}
%%%%                \label{fig:volks_stanford}
%%%%        \end{subfigure}
%%%%        \caption{Veículos autónomos}
%%%%\end{figure}
\begin{figure}[H]
        \centering
       \begin{minipage}{0.48\textwidth}
       \centering
                \includegraphics[height=4.7cm]{Imagens/google_prius}
                \caption{Carro autónomo desenvolvido pela Google}
                \label{fig:google_prius}
       \end{minipage}
       ~
       \begin{minipage}{0.48\textwidth}
       \centering
                \includegraphics[height=4.7cm]{Imagens/stanford_volks}
                \caption{Carro autónomo da Universidade de Stanford}
                \label{fig:volks_stanford}
       \end{minipage}
%         \caption{Veículos autónomos nos E.U.A.}
 \end{figure}      
       
       
        
      

% \clearpage
%++++++++++++++++++ ELROB ++++++++++++++++++++++++++
\subsection{\textit{European Land-Robot Trial} (ELROB)}\label{sec:elrob_comp}
O ELROB não é exatamente de uma competição, mas sim uma demonstração e comparação de funcionalidades e sua demonstração em ambientes reais. 
%\newline
%

Durante esse evento vários grupos de investigação, utilizadores e a industria automóvel demonstram as funcionalidades dos seus equipamentos,  permitindo a troca de ideias entre os diferentes grupos, como se trata de um evento Europeu, apenas está autorizada a participação de equipas Europeias.
\newline
O principal propósito da criação deste evento é a utilização da tecnologia existente no momento para resolver problemas "em mãos", na área da robótica, usando qualquer estratégia para o conseguir. Esses avanços tecnológicos podem ser aplicados e adicionados aos sistemas já existentes em veículos para a população, salvando vidas e definindo novos caminhos de investigação a médio e a longo prazo.\textit{"ELROB will enable Europe to re-engage in the benefits robotics can deliver now and the future."} \citep{elrob_site}.
A demonstração ocorre todos os anos, alternando entre a competição civil e militar.
\begin{figure}[H]
\centering
\includegraphics[scale=0.4]{Imagens/elrob_logo}
  
  \caption{ELROB LOGO}
\end{figure}
%  \begin{center}
%    
%\end{wrapfigure}





\begin{description}
\item [C-ELROB - ELROB civil] \hfill \\
O evento acontece de dois em dois anos alternando com o evento militar. foi criado com o objetivo de permitir a equipas que não estejam interessadas no desenvolvimento de ferramentas para a industria militar, também pudessem demonstrar as suas potencialidades. No entanto, o número de participantes em relação ao evento militar é mais baixo. Sendo que os participantes não vêem este evento como uma competição ou demonstração, mas sim como uma maneira de provar que os seus sistema são funcionais, e podem ter aplicabilidade em sistemas reais. Sendo uma ótima oportunidade para aprenderem novas técnicas e aproximações para os seus robôs.
\item [M-ELROB - ELROB militar] \hfill \\
O ELROB militar tem mais incidência sobre sistemas para implementação na industria militar a curto prazo; os sistemas apresentados têm de ser capazes de cumprir tarefas militares
 como, por exemplo, desarmadilhar bombas remotamente, para em caso de falha de missão se evitem perdas humanas.
Os cenários fornecidos representam o melhor possível cenários reias, pois os membros da organização fazem parte de equipas militares.\textit{M-ELROB is explicitly designed to assess current technology to solve real world problems at hand.}
\newline%\input{Cap-conclusoes/Cap-conclusoes}
À semelhança do C-ELROB os cenários para demonstrações também são mantidos em segredo até dias antes da prova.
\end{description}
%++++++++++++++++++++++ FIM DO ELROB ++++++++++++++++++++++++++









% +++++++++++++ ROS +++++++++++++
\subsection{Robot Operating System}\label{sec:ros_descricao}
O sistema ROS é um ambiente de desenvolvimento especialmente criado para aplicação em robótica, e sobre o qual se encontra todo o sistema implementado no Atlascar. Este sistema é extremamente versátil e encontra-se organizado em \textit{packages}. Isso significa que um sistema complexo pode ter vários \textit{nodes}(módulos) para processamento, o que permite a uma fácil compreensão e organização do código, podendo este ser implementado em várias linguagens de programação diferentes. A comunicação entre módulos é efetuada através de publicação e subscrição de mensagens, os chamados \textit{topics}(tópicos) (\textit{strings} que identificam cada mensagem). Em projetos de grande dimensão é comum existirem diversos tópicos a serem publicados e subscritos pelos diferentes módulos existentes. A divisão em pacotes e a comunicação entre módulos por mensagens permite a fácil migração de pacotes entre projetos. 
\newline
Todos os tópicos podem ser guardados para futura utilização, podendo ser feito um registo de todas as mensagens que são trocadas entre módulos durante a operação do robô,  sendo chamado o comando \textit{rosbag}, e o ficheiro criado do tipo \textit{.bag}. Os conceitos referidos e descritos são de extrema importância pois serão mencionados em várias ocasiões durante o texto. 

% +++++++++++++ END OF ROS +++++++++++++


\subsection{Sistema de rádio controlo}\label{sec:telemetria}
Os sistemas de rádio modelismo contam com alguns sistemas que se prendende implementar no ambito desta dissertação; como os sistemas de telemetria e \textit{fail-safe}, que serão explicados em seguida.
\newline
\begin{description}
\item [Sistema de Telemetria]\hfill \\
A telemetria é uma tecnologia que permite a receção e envio de dados através de um meio de comunicação, sendo o envio efetuado entre o utilizador e o equipamento, normalmente associado a sistemas de rádio controlo. Estes sistemas permitem ao utilizador saber o estado da máquina enquanto esta se encontra em operação; isto leva a uma previsão de falha, o que pode evitar a destruição do equipamento.
\newline
Uma das aplicações destes sistemas é nos aviões de rádio modelismo, pois durante a operação do equipamento o utilizador não se encontra perto da máquina, tendo de alguma forma conseguir perceber o estado da mesma, como carga das baterias, posicionamento, em que direção se desloca, etc.. Representa-se na figura \ref{fig:telemetria_conj} um sistema de telemetria para implementação em equipamentos de rádio modelismo.

\begin{figure}[H]
\centering
        
                \includegraphics[scale=0.3]{Imagens/futaba_conj}
                \caption{Conjunto RC de telemetria }
                \label{fig:telemetria_conj}
               
        
\end{figure}
Neste sistema o utilizador tem acesso a dados de sensores que são conectados à unidade de rádio que se encontra do modelo, enviando os dados para o comando, sendo estes depois representados no \textit{display}.

\item[Sistema de \textit{failsafe}] \hfill \\
O sistema de \textit{failsafe} é também sistema de segurança para aplicação em modelos de rádio modelismo. Consiste num sistema capaz de detetar a falha de comunicação entre o comando e o recetor, que se encontra no modelo. O sistema é normalmente instalado entre o recetor e o servo a atuar; no caso dos auto modelismo são colocados entre o recetor e o servo responsável pelo acelerador que normalmente é o mesmo que atua a travão, assim em caso de falha de comunicação ou bateria fraca o sistema de segurança é ativado, fazendo com que o servo ative os travões e o motor baixe as rotações. Na figura \ref{fig:failsafe_rc} encontra-se um dispositivo para instalação em carros de rádio modelismo.

 \begin{figure}[H]
\centering
        
                \includegraphics[scale=0.3]{Imagens/failsafe}
                \caption{Módulo \textit{failsafe} de radio modelismo }
                \label{fig:failsafe_rc}
               
        
\end{figure}
\end{description} 
% ++++++++++++++++++++ RMS +++++++++++++++++++++++

\subsection{\textit{Robot Management System} (RMS) do ROS}\label{sec:ros_rms_descricao}
O RMS é uma ferramenta de controlo remoto para robôs que operem sobre a plataforma ROS, podendo o controlo dos robôs ser efetuado via \textit{web}. O sistema RMS está implementado sobre uma página \textit{web} desenvolvida em PHP, que tem por trás uma base de dados MySQL. É desenvolvido de uma forma independente permitindo o controlo de alguns robôs; tem também a capacidade de gerir utilizadores, gestão da interface e gestão do conteúdo.
\newline
O servidor do RMS não necessita de ter instalado o sistema ROS; o acesso a mensagens e todo o conteúdo necessário para o controlo e monitorização do robô é efetuado através do sistema ros\_bridge que permite a comunicação através de uma ligação \textit{TCP/IP} entre um módulo ROS e uma interface web, o esquema de funcionamento pode ser consultado na figura \ref{fig:rms_graph} \citep{rms_ros_wiki}.

 \begin{figure}[H]
\centering
        
                \includegraphics[width=14cm]{Imagens/rms_graph}
                \caption{Esquema de funcionamento do RMS - Robot Management System }
                \label{fig:rms_graph}
               
        
\end{figure}





\clearpage
~\\[50mm]
\thispagestyle{empty}

% +++++++++++++++++ FIM DA DESCRIÇÃO DO RMS ++++++++++++++++



%\titlepage\ \endtitlepage 