\chapter{Caraterização de Sensores}\label{ch:caraterizacao_sensores}   
\thispagestyle{myheadings}
 Neste capítulo serão apresentados os sensores \acs{IMU} disponíveis para o desenvolvimento deste projeto. Serão apresentadas as caraterísticas presentes nos \textit{datasheets} dos fabricantes, e em seguida, uma exposição de várias experiências realizadas com os sensores que serviram tanto para os avaliar e comparar com os dados apresentados pelos fabricantes como para os comparar entre si, com o objetivo de estabelecer qual deles se adapta melhor ao pretendido neste projeto.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Sensores Disponíveis}\label{sec:sensores_disponives}

\parl Para este projeto, foram disponibilizados dois modelos diferentes de \acs{IMU}. Apesar de serem modelos de diferentes fabricantes, ambos são de 9 graus de liberdade (\acs{GDL}), que se encontram distribuídos em 3 em acelerómetros, 3 em giroscópios e 3 em magnetómetros.
\parl Antes de realizar qualquer conclusão acerca destes sensores, foi preciso caraterizá-los e testá-los. Nas próximas linhas estão apresentadas as caraterísticas destes dois sensores, apresentadas pelo fabricantes.
\begin{itemize}
	\item RAZOR 9\acs{GDL}- SEN 10736 (Sensor A)
		\begin{itemize}
			\item[] 
			\begin{figure}[!h]
			\begin{center}
			$
			\begin{array}{cc}
				\includegraphics[scale=0.2]{Imagens/RAZOR_image1.pdf}\label{fig:IMU Razor 9 gdl} &
				\includegraphics[scale=0.8]{Imagens/RAZOR_image2.pdf}

			\end{array}$
			\caption{IMU Razor 9 gdl}
			\end{center}
			\end{figure}
			\item 9 graus de liberdade:
				\begin{itemize}
					\item 3 Acelerómetros - ADXL345;
						\begin{itemize}
							\item Funcionamento até $\pm$16g;
							\item Resolução até 13bit;
							\item Sensibilidade até 4mg/LSB;
							\item Frequência funcionamento até 3.2 kHz;
						\end{itemize}
					\item 3 Giroscópios - ITG3200;
						\begin{itemize}
							\item Funcionamento até $\pm$2000 $^{\circ}{\rm /s}$;
							\item Resolução até 16bit;
							\item Sensibilidade até 14.375 LSB/($^{\circ}$/s);
							\item Frequência funcionamento até 30 kHz;

						\end{itemize}					
					\item 3 Magnetómetros - HMC5883L.
						\begin{itemize}
							\item Funcionamento até $\pm$8 gauss;
							\item Resolução até 12bit;
							\item Sensibilidade até 2 miligauss;
							\item Frequência funcionamento até 400 kHz;
						\end{itemize}					

				\end{itemize}
			\item Microcontrolador ATmega328P incorporado;
			\item Comunicação com o exterior via RS232;
			\item Voltagem de alimentação entre 2.5-3.3V;
		\end{itemize}
	\item POLOLU - MinIMU9DOF v2 (Sensor B)
		\begin{itemize}
			\item[]
			\begin{figure}[!h]
			\begin{center}
			$
			\begin{array}{cc}
				\includegraphics[scale=0.2]{Imagens/minIMU_POLOLU_image1.pdf}\label{fig:minIMU-v2 Pololu 9gdl} &
				\includegraphics[scale=1.2]{Imagens/minIMU-v2_POLOLU_image2.pdf}
			\end{array}$
			\caption{minIMU-v2 Pololu 9gdl}
			\end{center}			
			\end{figure}
			
			\item 9 graus de liberdade:
				\begin{itemize}
					\item 3 Acelerómetros - LSM303DLHC;
						\begin{itemize}
							\item Funcionamento até $\pm$16g;
							\item Resolução até 12bit;
							\item Sensibilidade até 1mg/LSB;
							\item Frequência funcionamento até 400 kHz;
						\end{itemize}					
					\item 3 Giroscópios - L3GD20;
						\begin{itemize}
							\item Funcionamento até $\pm$2000 $^{\circ}{\rm /s}$;
							\item Resolução até 16bit;
							\item Sensibilidade até 8.75 mdps/LSB;
							\item Frequência funcionamento até 760 Hz;
						\end{itemize}					

					\item 3 Magnetómetros - LSM303DLHC.
						\begin{itemize}
							\item Funcionamento até $\pm$8 gauss;
							\item Resolução até 12bit;
							\item Sensibilidade até 1 miligauss;
							\item Frequência funcionamento até 400 kHz;
						\end{itemize}					

				\end{itemize}
			\item Comunicação com o exterior via I2C;
			\item Possibilidade de ligar a 3.3V-Vdd ou 5V-Vin.
		\end{itemize}
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% DEVO FALAR AQUI DAS CALIBRAÇÕOES ???????%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Modo de Ligação}

\parl Para a comunicação entre PC e cada um dos sensores podem-se utilizar recursos como conversores e/ou interfaces intermédias. Contudo, em especial durante a realização de testes, os sensores foram conectados ao PC da forma mais rápida e simples que se conhecia até ao momento.

\begin{figure}[H]
\centering
\includegraphics[scale=0.5]{Imagens/montagem_testes_razor.png}

\caption{Esquema montagem e ligação sensor A - PC}
\label{fig:montagem_testes_razor}
\end{figure}


\begin{figure}[H]
\centering
\includegraphics[scale=0.65]{Imagens/montagem_testes_pololu.png}

\caption{Esquema montagem e ligação sensor B - PC}
\label{fig:montagem_testes_pololu}
\end{figure}

\parl Na figura \ref{fig:montagem_testes_razor} encontra-se um esquema da forma como se efetuou a ligação do sensor A com o PC. Para esta ligação apenas foi preciso utilizar um conversor FTDI RS232-USB para o qual o sensor já se encontra preparado, o que possibilitou o recurso a um simples cabo USB que conectou o conversor ao PC.

\parl Na figura \ref{fig:montagem_testes_pololu} encontra-se um esquem da forma como foi feita a ligação entre o sensor B e o PC. Uma vez que este tipo de sensor não dispõe de um microcontrolador incorporado, foi então necessária a implementação de um módulo que possibilitasse a comunicação com o sensor. Um \textit{Arduino Uno} foi a conclusão mais rápida e prática, uma vez que para ele já se encontram disponíveis bibliotecas que agilizam a comunicação I2C com o sensor. De seguida, a comunicação \textit{Arduino} - PC é realizada com recurso a um simples cabo USB.

\section{Calibração Sensores}

\parl Dispositivos de medições de uma grande diversidade de grandezas estão, geralmente, sujeitos a desvios. Para que os resultados destes dispositivos sejam de confiança, é necessário conhecer esses desvios, e assente em alguma metodologia, compensar esses desvios. A este procedimento de compensação dá-se o nome de calibração. De notar que esses desvios, para condições semelhantes, devem ser da mesma magnitude ou respeitar um comportamento fixo, caso contrário a calibração é impraticável.

\parl Como dispositivos de medição, todos os sensores dos \acsp{IMU} dos dois tipos também necessitam de calibração. Neste caso, as calibrações podem ser realizadas de duas formas. No primeiro caso, a calibração é feita previamente e gravada para compensar os valores que são lidos dos sensores. No segundo caso, a calibração é executada sempre que é iniciado o módulo de leitura, fazendo um número pré-determinado de leituras e, no processamento, a compensação dos valores que chegam dos sensores é feita com a média das leituras realizadas previamente. Mesmo que ambos os métodos ofereçam bons resultados na calibração, ambos apresentam vantagens e desvantagens. No primeiro caso, sendo uma calibração mais exaustiva, o processo é mais demorado e geralmente não é realizado em todas as utilizações dos sensores. Se as condições externas que podem afetar os resultados mudam, ou as propriedades físicas dos sensores fazem variar os valores medidos nos sensores, os valores da calibração não são automaticamente atualizados, correndo o risco de haver erros que não seria suposto existir. No segundo caso, para que a calibração seja bem feita, os sensores devem estar imóveis, ou seja, se o módulo de recolha de dados é inicializado com os sensores em movimento, os valores da calibração estarão corrompidos, executando assim a leitura de valores descalibrados.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Preparação Testes}\label{sec:preparação_testes}

\parl Em primeira análise, partindo do princípio que ambos os sensores A e B apresentam comportamentos idênticos, pode-se  afirmar que o sensor B seria a melhor opção na implementação de uma rede destes sensores no robô humanoide, olhando para o simples facto de este se apresentar como a solução mais compacta. Contudo, antes de se optar pela solução definitiva, tornou-se necessário realizar testes que ajudassem a comparar ambos os sensores, tanto com os dados fornecidos pelos fabricantes, como para criar uma base de comparação entre os dois.
\parl A solução para a realização desses testes surgiu dentro do laboratório. No \acs{LAR} - \acl{LAR} existe um braço robótico antropomórfico de seis graus de liberdade Fanuc que, na manipulação de objetos com massa inferior a aproximadamente cinco kilogramas, consegue atingir uma precisão na ordem de algumas dezenas de micrómetros, tornando-se assim a ferramenta ideal para a realização dos testes. Na figura \ref{fig:imagem_fanuc} encontra-se ilustrado um esquema do braço robótico em questão onde se encontram também referidas as juntas nas quais o braço robótico consegue operar.

\begin{figure}[!h]
\begin{center}

		\includegraphics[scale=0.5]{Imagens/fanuc_joints.png}
\caption{Braço robótico antropomórfico 6 graus de liberdade - Fanuc} \label{fig:imagem_fanuc}
\end{center}			
\end{figure}

\parl A preparação dos testes realizou-se com a divisão de duas fases distintas:
\begin{itemize}
	\item Preparação do \textit{setup}
		\begin{itemize}
			\item Realização do projeto de um pequeno suporte com o objetivo de conseguir fixar os sensores no \textit{end-effector} do braço robótico (presente na figura \ref{fig:suporte_sensores_fanuc}, onde se pode observar montado o suporte desenvolvido em \ref{fig:suporte_fanuc_montado}, e o mesmo suporte acoplado ao braço robótico em \ref{fig:suporte_fanuc_acoplado}).
			\item Realização de um programa capaz de comunicar com os controladores do braço robótico para o fazer executar os programas pretendidos e obter a posição do braço robótico, assim como os dados dos sensores durante a realização dos testes.
			
% Para além disso, o programa teria ainda o papel de gravar os dados que posteriormente são avaliados.


%		\item Esta foi a fase mais demorada, pois foi necessário projetar um suporte que se fixasse ao \textit{end-effector} do braço robótico no qual se colocariam os sensores durante os testes. XXXXXXXXXXXXXXXXXXXXXXXXXX JA PARA NAO FALAR NO PROGRAMA PARA CORRER OS PROGRAMAS DO ROBO E GRAVAR OS DADOS NUM BAG!!
		\end{itemize}
	\item Desenvolvimento dos movimentos avaliados
		\begin{itemize}
			\item Na consola do braço robótico, foram desenvolvidos vários programas para que este realizasse movimentos que permitissem avaliar as reações dos sensores. Tais movimentos podem ser divididos em movimentos de um eixo apenas, tanto de translação como de rotação.
		\end{itemize}
\end{itemize}

\begin{figure}[H]
\centering
\begin{subfigure}{0.4\textwidth}
\includegraphics[width=\textwidth]{Imagens/suporte_fanuc.jpg}
\caption{Suporte montado.}
\label{fig:suporte_fanuc_montado}
\end{subfigure}
~
\begin{subfigure}{0.4\textwidth}
\includegraphics[width=\textwidth]{Imagens/suporte_fanuc_montado.jpg}
\caption{Suporte acoplado.}
\label{fig:suporte_fanuc_acoplado}
\end{subfigure}

\caption{Suporte de fixação dos sensores para braço robótico.}
\label{fig:suporte_sensores_fanuc}

\end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Testes com os Sensores}\label{sec:testes_sensores}

%Uma vez concluída a preparação dos testes, segue-se a realização dos mesmos. Para tal, bastou montar todo o \textit{setup}, montar o sensor no suporte e ligá-lo ao programa. Na sua execução, o programa dá ordem à consola do braço robótico para executar um dos programas previamente preparados para o braço robótico executar os movimentos d
\parl Para ter o \textit{setup} preparado e pronto a funcionar, o suporte fixou-se ao \textit{end-effector} do braço robótico, fixando depois a esse suporte o sensor com o qual se pretende realizar os testes. De seguida, bastou ligar ao computador tanto o sensor via RS232 com um conversor para USB, ou seja, um conversor FTDI e conectar o braço robótico ao computador com um cabo \textit{Ethernet} para a comunicação entre eles se realizar através do protocolo TCP/IP.
\parl No fluxograma presente na figura \ref{fig:fluxograma} pode-se observar o modo de funcionamento do código desenvolvido especificamente para a operação de movimentar o braço robótico e obter os dados deste e dos sensores. De uma forma resumida, no computador é necessário dar uma ordem de arranque, ou lançamento do programa, e este ao iniciar, a primeira tarefa que executa é a inicialização das comunicações tanto com o sensor por via RS232, como com o braço robótico por TCP/IP. Durante todo o processo, se algum erro ocorrer com alguma das comunicações, a execução do programa é terminada. Após as comunicações serem inicializadas com sucesso, deve-se mandar o braço robótico executar um programa genericamente denominado programa TP, que não é mais que uma lista de instruções de movimentos que este deve executar, onde se encontram os movimentos com os quais se pretendem avaliar os sensores.  Após a ordem de execução do programa TP, e ainda durante a sua execução, o programa no computador avança para a fase seguinte, a fase de recolha de dados. Nesta fase, são pedidos os dados das coordenadas e orientações do braço robótico e os dados provenientes do sensor montado no suporte. Esta ação é executada num ciclo fechado (\textit{loop}) com uma frequência fixa de 20 Hz. Dentro desse \textit{loop} são ainda guardados os valores que chegam tanto do sensor como do braço robótico em ficheiros que depois são utilizados em pós-processamento que se destina à caraterização destes dois sensores.
\newline
\begin{figure}[!h]
% Define block styles
%\tikzstyle{decision} = [diamond, draw, fill=blue!20, 
%    text width=4.5em, text badly centered, node distance=2cm, inner sep=0pt]
%\tikzstyle{block} = [rectangle, draw, fill=blue!20, 
%    text width=10em, text centered,node distance=4cm, rounded corners, minimum height=2em]
%\tikzstyle{block2} = [rectangle, draw, fill=blue!70, 
%    text width=4em, text centered,node distance=2cm, rounded corners, minimum height=2em]
%\tikzstyle{block3} = [rectangle, draw, fill=blue!70, 
%    text width=3em, text centered,node distance=2cm, rounded corners, minimum height=2em]
%\tikzstyle{line} = [draw, -latex']
%\tikzstyle{block4} = [rectangle, draw, fill=blue!20, 
%    text width=6em, text centered,node distance=4cm, rounded corners, minimum height=2em]
%\tikzstyle{block5} = [rectangle, draw, fill=blue!20, 
%    text width=10em, text centered,node distance=2cm, rounded corners, minimum height=2em]    
%%\tikzstyle{cloud} = [draw, ellipse,fill=red!20, node distance=3cm,
%%    minimum height=2em]
%    
%\begin{tikzpicture}
%% Place nodes
%  \matrix{
%    \node [block3] (init) {Start};
%      \&  \node [block5, below of=init] (tcpip_comm) {PC - TCP/IP - Fanuc PC - RS232 - Sensor}; \& 
%		\& \node [block4, right of=tcpip_comm] (runtpp) {Run TPprogram}; \& 
%
%    \node [block, right of=runtpp] (fanuc_pos) {\begin{center} Fanuc's Position Sensor's Values \end{center}};
%%    \node [block4, above of=fanuc_pos] (publish_data) {Publish Data};
%      \& \node [decision, right of=fanuc_pos] (decide) {Quit Request ?};
%      \& \node [block2, above of=decide] (quit) {Quit Program}; \\
%  };
%
%    % Draw edges
%    \path [line] (init) -- (tcpip_comm);
%    \path [line] (tcpip_comm) -- (runtpp);
%    \path [line] (decide) to[bend left=75]  node [midway,above] {no} (fanuc_pos);
%    \path [line] (runtpp) -- (fanuc_pos);
%    \path [line] (fanuc_pos) -- (decide);
%    \path [line] (decide) --  node [midway,right] {yes} (quit);
%
%%\node [label={[label distance=0cm, xshift=-2.0cm, yshift=-3.0cm]0:IMAGEM :.... FLUXOGRAMA!!}] {};

\begin{tikzpicture}[scale=1]
\matrix[nodes={draw, thick, fill=blue!20, align=center}, row sep=1cm,column sep=1cm]{
\node[rectangle, draw, thick, fill = blue!70] (start) {Start}; & 
\node[rectangle, draw = none, fill = white!100] {}; &
\node[rectangle, draw = none, fill = white!100] {}; &
\node[rectangle, draw, thick, fill = blue!70] (end) {\begin{tabular}{l}
    End \\
     Program
\end{tabular}}; \\
\node[rectangle, draw,thick , fill = blue!20] (init) {\begin{tabular}{l}
   PC - TCP/IP - Fanuc\\
     PC - RS232 - Sensor
\end{tabular}}; &
\node[rectangle, draw, thick, fill = blue!20] (run) {\begin{tabular}{l}
    Run TP\\
     Program
\end{tabular}}; &
\node[rectangle, draw, thick, fill = blue!20] (read_data) {\begin{tabular}{l}
 Fanuc's Position\\
 Sensor's Values
\end{tabular}}; &
\node[diamond, draw, thick, fill = blue!20] (decision) {Quit ?}; \\
} ;

\path [->, draw=black!100, ultra thick] (start) -- (init);
\path [->, draw=black!100, ultra thick] (init) -- (run);
\path [->, draw=black!100, ultra thick] (run) -- (read_data);
\path [->, draw=black!100, ultra thick] (read_data) -- (decision);
\path [->, draw=black!100, ultra thick] (decision) -- node[midway,left] {yes} (end);
\path [->, draw=black!100, ultra thick] (decision) to[bend left=85]  node [midway,above] {no} (read_data);
\end{tikzpicture}

\caption{Funcionamento do programa de obtenção de dados durante testes realizados}  \label{fig:fluxograma}
\end{figure}
\parl Uma vez terminada a recolha de dados durante os testes realizados, é necessário convertê-los num formato compatível com a ferramenta \textit{MATLAB}\textsuperscript{\textregistered}.

\parl Como já foi referido anteriormente, em ambos os \acsp{IMU} encontram-se incorporados magnetómetros. Este tipo de sensores faz uma medição do campo magnético que o rodeia. Segundo a lei da indução magnética, qualquer corrente elétrica que atravesse material condutor dá origem a um campo magnético. O magnetómetro é utilizado no \acs{INS} para captar o campo magnético da Terra, e se existirem campos magnéticos induzidos próximos do magnetómetro, a leitura do campo magnético da Terra efetuada por este, estará afetada pelo campo magnético induzido. Ora, braço robótico é provido de fortes motores nos quais circula uma grande intensidade de corrente, criando consequentemente um forte distúrbio no campo magnético que o magnetómetro consegue captar. Com os movimentos do braço robótico, na execução de cada teste a distância entre o sensor e cada um dos motores do braço robótico não é constante, afetando assim o campo magnético que rodeia o sensor de forma variada. Uma vez que as calibrações possíveis de realizar para magnetómetros se destina apenas para situações em que o campo magnético é constante e não conseguindo prever a intensidade do campo magnético em cada ponto do espaço, tornou-se impossível avaliar o comportamento dos magnetómetros durante estes testes, fazendo apenas uma avaliação restrita aos acelerómetros e giroscópios.

\begin{figure}[!h]
\begin{center}
$\begin{array}{c|c}
		\includegraphics[scale=0.4]{Imagens/fanuc_trans.png} &
		\includegraphics[scale=0.4]{Imagens/fanuc_rot.png}		
\end{array}$
\caption{à esquerda - ilustração dos movimentos de translação ; à direita - ilustração movimentos de rotação} \label{fig:movimentos_testes}
\end{center}			
\end{figure}
\parl Os movimentos realizados nos testes com o braço robótico consistiram na sua maioria em dois tipos de movimentos simples:
\begin{description}
\item rotação em torno de um eixo;
\item translação em torno de um eixo.
\end{description}

Em ambos os casos, em cada teste, todos os eixos são percorridos, ou seja, tanto na rotação como na translação é realizado o movimento num eixo e de seguida o braço robótico regressa à posição inicial por forma a prosseguir para o movimento (da mesma natureza) no eixo que se segue. Na figura \ref{fig:movimentos_testes} é possível observar uma ilustração dos movimentos realizados para cada um dos tipos de movimento, de translação representado à esquerda e de rotação representado à direita. 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Resultados Obtidos nos Testes}\label{sec:resultados_obtidos}

%\parl A análise dos resultados seguiu-se à conclusão dos testes. Ao observar estes resultados pode-se observar a natureza destes, o que se pode esperar deles, e ao perceber isso pode-se seguir para a fase seguinte, que será referida mais adiante. Mas para já, serão apresentados os resultados obtidos nos testes realizados no braço robótico.





\subsection{Resultados de Giroscópios}\label{subsec:resultados_giroscopios}

\parl Com os giroscópios é possível obter a velocidade angular durante um movimento, por isso, com estes sensores, o foco foi virado para movimentos angulares. No entanto, é também importante verificar que em movimentos de translação o seu comportamento não é afetado, por forma a distinguir de que tipo de movimento se trata.

\begin{description}
\item[Posição Estática]
\end{description}

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_gyro_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:testes_estatico_gyro_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_gyro_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:testes_estatico_gyro_Y_RAZOR}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_gyro_Z_RAZOR.jpg}
\caption{Eixo Z}
\label{fig:testes_estatico_gyro_Z_RAZOR}
\end{subfigure}

\caption{Teste de posição estática - Giroscópio - Sensor A}
\label{fig:testes_estatico_gyro_RAZOR}
\end{figure}


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_gyro_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:testes_estatico_gyro_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_gyro_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:testes_estatico_gyro_Y_POLOLU}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_gyro_Z_POLOLU.jpg}
\caption{Eixo Z}
\label{fig:testes_estatico_gyro_Z_POLOLU}
\end{subfigure}

\caption{Teste de posição estática - Giroscópio - Sensor B}
\label{fig:testes_estatico_gyro_POLOLU}
\end{figure}

%\begin{table}[!h]
%\begin{center}
%\resizebox{6cm}{!}{
%\begin{tabular}{|c|c|c|}
%\hline
%\multicolumn{3}{ |c| }{Erro Máximo (º/s) } \\
%\hline
%& Sensor \textbf{A} & Sensor \textbf{B} \\
%\hline
%Fabricante & valor & valor \\
%\hline
%Resultados & valores & valores \\
%\hline
%\end{tabular}
%}
%\label{tab:fanuc_parado_gyro}
%\caption{Valores de amplitude obtidos.}
%\end{center}
%\end{table}

\begin{table}[!h]
\begin{center}
\resizebox{6cm}{!}{
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{3}{ |c| }{Erro Máximo - Giroscópio ($^{\circ}$/s) } \\
\hline
& Sensor \textbf{A} & Sensor \textbf{B} \\
\hline
Imóvel & 0.13 & 0.8 \\
\hline
\end{tabular}
}

\caption{Erro Máximo para sensores - experiência com braço robótico imóvel.}
\label{tab:fanuc_parado_gyro}
\end{center}
\end{table}

%\parl Nos gráficos presentes nas figuras \ref{fig:testes_estatico_gyro_X_RAZOR} , \ref{fig:testes_estatico_gyro_Y_RAZOR}  \ref{fig:testes_estatico_gyro_Z_RAZOR}, provenientes do sensor A e \ref{fig:testes_estatico_gyro_X_POLOLU}, \ref{fig:testes_estatico_gyro_Y_POLOLU}, \ref{fig:testes_estatico_gyro_Z_POLOLU}, provenientes do sensor B, encontram-se os dados resultantes dos diferentes eixos, para os testes do caso estático.

\parl Nos gráficos presentes nas figuras \ref{fig:testes_estatico_gyro_X_RAZOR} , \ref{fig:testes_estatico_gyro_Y_RAZOR}  \ref{fig:testes_estatico_gyro_Z_RAZOR}, provenientes do sensor A e \ref{fig:testes_estatico_gyro_X_POLOLU}, \ref{fig:testes_estatico_gyro_Y_POLOLU}, \ref{fig:testes_estatico_gyro_Z_POLOLU}, provenientes do sensor B, apresentam-se os resultados da experiência realizada com o braço robótico imóvel.

\parl Nestes gráficos, podem ser observadas oscilações em torno de um valor, que optimamente seria 0 $^{\circ}{\rm /s}$. No entanto, para o sensor A o mesmo não acontece, isto é, os valores apresentados para cada eixo desse sensor oscilam em torno de valores diferentes de zero. Uma vez que tal acontece, verifica-se que a calibração deste sensor necessita de ser ajustada.

\parl Quanto aos valores de oscilação para os dois sensores, na tabela \ref{tab:fanuc_parado_gyro}, para esta experiência, são apresentados os valores da amplitude máxima de oscilação/erro verificada em cada um dos sensores, sendo que para o sensor A, é verificado um erro máximo de 0.13 $^{\circ}{\rm /s}$ e para o sensor B, um erro máximo de 0.8 $^{\circ}{\rm /s}$.

%\parl No caso do sensor A, encontra-se resultados de oscilações de um valor constante. Para uma calibração bem executada, os valores em torno dos quais os resultados oscilam deveriam ser 0 g$^{\circ}{\rm /s}$. Como tal não acontece, isto indica que a calibração deve ser reajustada. A amplitude dos valores oscilantes, segundo o fabricante não deve ultrapassar $\pm$120$^{\circ}{\rm /s}$. Ora segundo os gráficos relativos ao sensor A, a oscilação cuja amplitude é máximo é de 0.19$^{\circ}{\rm /s}$. Sendo assim, este sensor com as atuais configurações respeita os valores tabelados pelo fabricante.
%
%\parl No caso do sensor B, os resultados obtidos mostram oscilações nas quais é difícil definir o valor sobre o qual estas ocorrem, contudo pode-se observar que todos os valores deste sensor oscilam por valores todos eles próximos de 0$^{\circ}{\rm /s}$ e comparando a amplitude máxima de entre os três eixos 1.4$^{\circ}{\rm /s}$ com as especificações do fabricante tabelado em $\pm$75$^{\circ}{\rm /s}$, pode-se concluir que este tipo de sensor com as atuais configurações também respeita os valores tabelados.

\begin{description}
\item[Movimentos de Translação]
\end{description}

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_gyro_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:testes_trans_gyro_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_gyro_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:testes_trans_gyro_Y_RAZOR}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_gyro_Z_RAZOR.jpg}
\caption{Eixo Z}
\label{fig:testes_trans_gyro_Z_RAZOR}
\end{subfigure}

\caption{Teste de movimento de translação - Giroscópio - Sensor A}
\label{fig:testes_trans_gyro_RAZOR}
\end{figure}


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_gyro_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:testes_trans_gyro_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_gyro_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:testes_trans_gyro_Y_POLOLU}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_gyro_Z_POLOLU.jpg}
\caption{Eixo Z}
\label{fig:testes_trans_gyro_Z_POLOLU}
\end{subfigure}

\caption{Teste de movimento de translação - Giroscópio - Sensor B}
\label{fig:testes_trans_gyro_POLOLU}
\end{figure}

\begin{table}[!h]
\begin{center}
\resizebox{6cm}{!}{
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{3}{ |c| }{Erro Máximo - Giroscópio ($^{\circ}$/s) } \\
\hline
& Sensor \textbf{A} & Sensor \textbf{B} \\
\hline
Translação & 1.8 & 1.7\\
\hline
\end{tabular}
}
\caption{Valores de erro máximo para movimentos de translação - Giroscópio.}
\label{tab:fanuc_trans_gyro}
\end{center}
\end{table}


\parl Nos gráficos das figuras \ref{fig:testes_trans_gyro_X_RAZOR}, \ref{fig:testes_trans_gyro_Y_RAZOR} e \ref{fig:testes_trans_gyro_Z_RAZOR} correspondentes ao sensor A e  \ref{fig:testes_trans_gyro_X_POLOLU}, \ref{fig:testes_trans_gyro_Y_POLOLU} e \ref{fig:testes_trans_gyro_Z_POLOLU} correspondentes ao sensor B, encontram-se os resultados obtidos durante os testes, realizados com movimentos de translação. Nestes gráficos, as curvas a azul representam a posição espacial do \textit{end-effector} do braço robótico nos três eixos X,Y e Z e as curvas a verde representam os resultados obtidos dos sensores nos mesmos três eixos.

\parl Uma vez mais, quando não se verifica movimento segundo um dos três eixos, os valores fornecidos por ambos os sensores, deveria de oscilar em torno de 0 $^{\circ}{\rm /s}$. No entanto, para o sensor A, o mesmo não se verifica. Este fato deve-se à já referida necessidade de ajuste da sua calibração.

\parl Ainda referente aos momentos, nos quais não se verifica movimento de translação para cada um dos eixos, a tabela \ref{tab:fanuc_trans_gyro} apresenta os valores máximos de erro registados, sendo que para o sensor A, o valor apresentado é de 1.8 $^{\circ}{\rm /s}$ e para o sensor B 1.7 $^{\circ}{\rm /s}$.

%\parl Nos resultados de ambos os sensores é possível observar um aumento da amplitude de oscilação para este tipo de movimento, comparativamente às oscilações presentes nos gráficos da situação estática. Este fenómeno deve-se à interferência que os movimentos lineares têm sobre os giroscópios.
%
%\parl Ao observar os gráficos que correspondem ao sensor A, pode observar-se que a maior amplitude de oscilação de valores é obtida no giroscópio representante do eixo Y com um valor de 3$^{\circ}{\rm /s}$. Como o valor máximo de erro emitido por ruido tabelado pelo fabricante é de $\pm$120$^{\circ}{\rm /s}$, verifica-se mais uma vez que os valores observados não excedem este parâmetro.
%
%\parl No caso dos resultados do sensor B, pode observar-se que a amplitude máxima de oscilações de valores foi atingida no eixo Z com 3$^{\circ}{\rm /s}$ de amplitude, sendo assim inferior a $\pm$75$^{\circ}{\rm /s}$, valor tabelado pelo fabricante.

\begin{description}
\item[Movimentos de Rotação]
\end{description}

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_gyro_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:testes_rot_gyro_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_gyro_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:testes_rot_gyro_Y_RAZOR}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_gyro_Z_RAZOR.jpg}
\caption{Eixo Z}
\label{fig:testes_rot_gyro_Z_RAZOR}
\end{subfigure}

\caption{Teste de movimento de rotação - Giroscópio - Sensor A}
\label{fig:testes_rot_gyro_RAZOR}
\end{figure}


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_gyro_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:testes_rot_gyro_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_gyro_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:testes_rot_gyro_Y_POLOLU}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_gyro_Z_POLOLU.jpg}
\caption{Eixo Z}
\label{fig:testes_rot_gyro_Z_POLOLU}
\end{subfigure}

\caption{Teste de movimento de rotação - Giroscópio - Sensor B}
\label{fig:testes_rot_gyro_POLOLU}
\end{figure}

\parl Nos gráficos que se encontram nas figuras \ref{fig:testes_rot_gyro_X_RAZOR} , \ref{fig:testes_rot_gyro_Y_RAZOR} e \ref{fig:testes_rot_gyro_X_RAZOR} , referentes ao sensor A , \ref{fig:testes_rot_gyro_X_POLOLU}, \ref{fig:testes_rot_gyro_Y_POLOLU} e \ref{fig:testes_rot_gyro_Z_POLOLU} referentes ao sensor B, estão apresentados os resultados dos testes realizados com movimentos de rotação. Em todos os gráficos é possível observar a azul a curva do \textit{end-effector} do braço robótico e a verde os resultados dos giroscópios de cada eixo de cada um dos sensores.

\parl Nestes movimentos de rotação, o braço robótico executa uma rotação em torno de um só eixo com uma amplitude de 90$^{\circ}$ e de seguida executa o movimento contrário. Esta ação é realizada uma vez para cada eixo de forma sequencial a uma velocidade aproximada de 150$^{\circ}{\rm /s}$. Em cada movimento, o braço robótico descreve inicialmente uma rampa de aceleração e no final uma rampa de desaceleração. Conjugando a velocidade do movimento e a sua amplitude, o movimento não dispõe de velocidade angular constante. Analisando os resultados dos gráficos de ambos os sensores para este tipo de teste, pode-se observar a existência de um aumento de velocidade correspondente à rampa de aceleração do braço robótico. De seguida, observa-se um abrandamento da forma como a velocidade angular aumenta, existindo um instante em que este crescimento é nulo, ou seja, é encontrado um pico da velocidade angular. Aqui o braço robótico começa a entrar em desaceleração, observando-se um decréscimo da velocidade angular até um valor próximo de zero. Neste instante, o braço robótico completou o movimento de 90$^{\circ}$, sobrando nesse eixo o movimento de regresso. Nesse movimento de regresso à posição inicial, a curva apresentada por ambos os sensores apresenta um comportamento simétrico à que foi explicada anteriormente.

\parl Nos momentos em que o braço robótico executa os movimentos em torno de um eixo, observa-se que os eixos restantes apresentam valores muito próximos de zero, existindo em alguns instantes pequenas flutuações de seus valores, de amplitude desprezável, face aos valores de velocidade angular, registados durante a realização do movimento.

\subsection{Resultados de Acelerómetros}\label{subsec:resultados_acelerometros}

\parl Para as experiências destinadas a avaliar os acelerómetros, os sensores foram colocados no \textit{end-effector} de forma ao seu sistema de coordenadas possuir a mesma orientação do sistema do braço robótico, sendo esta a orientação inicial de todos os testes realizados.

\begin{description}
\item[Posição Estática]
\end{description}

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_acel_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:testes_estatico_acel_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_acel_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:testes_estatico_acel_Y_RAZOR}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_acel_Z_RAZOR.jpg}
\caption{Eixo Z}
\label{fig:testes_estatico_acel_Z_RAZOR}
\end{subfigure}

\caption{Teste de posição estática - Acelerómetro - Sensor A}
\label{fig:testes_estatico_acel_RAZOR}
\end{figure}


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_acel_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:testes_estatico_acel_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_acel_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:testes_estatico_acel_Y_POLOLU}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/still_0_0_0_acel_Z_POLOLU.jpg}
\caption{Eixo Z}
\label{fig:testes_estatico_acel_Z_POLOLU}
\end{subfigure}

\caption{Teste de posição estática - Acelerómetro - Sensor B}
\label{fig:testes_estatico_acel_POLOLU}
\end{figure}


\begin{table}[!h]
\begin{center}
\resizebox{6cm}{!}{
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{3}{ |c| }{Erro Máximo - Acelerómetro \textit{g} } \\
\hline
& Sensor \textbf{A} & Sensor \textbf{B} \\
\hline
Parado & 0.015 & 0.055 \\
\hline
\end{tabular}
}
\caption{Valores de erro máximo para braço robótico imóvel - acelerómetro.}
\label{tab:fanuc_parado_accel}
\end{center}
\end{table}


\parl Nos gráficos apresentados nas figuras \ref{fig:testes_estatico_acel_X_RAZOR}, \ref{fig:testes_estatico_acel_Y_RAZOR} e \ref{fig:testes_estatico_acel_X_RAZOR}, sensor A e  \ref{fig:testes_estatico_acel_X_POLOLU}, \ref{fig:testes_estatico_acel_Y_POLOLU} e \ref{fig:testes_estatico_acel_X_POLOLU}, sensor B, é possível visualizar o resultado dos testes realizados com o braço robótico imóvel.

\parl Na posição inicial e em repouso, os acelerómetros devem apresentar 0 \textit{g} nos eixos \textit{X} e \textit{Y} e 1 \textit{g} no eixo \textit{Z}, uma vez que apenas este último se encontra alinhado com o vetor da aceleração gravitacional. No entanto, observando os gráficos, pode-se observar os acelerómetros do sensor A não apresentam valores a oscilar em torno dos valores descritos. Este fato revela que também os acelerómetros do sensor A necessitarem de ajustar a sua calibração. Já os acelerómetros do sensor B apresentam oscilações em torno dos valores descritos.

\parl No que diz respeito à amplitude máxima de oscilação (erro máximo), a tabela \ref{tab:fanuc_parado_accel} apresenta os valores registados nesta experiência em que o braço robótico permanece imóvel. Para o sensor A, o erro máximo registado é de 0.015 \textit{g}, enquanto que para o sensor B, o valor é de 0.055 \textit{g}.

%\parl Posicionando os sensores acelerómetros com o seu eixo Z alinhado com o vetor da aceleração gravítica. Assim, os valores esperados para os acelerómetros de ambos os sensores seriam aproximadamente 0 g nos eixos X e Y e 1 g para o eixo Z. Nos gráficos correspondentes aos acelerómetros do sensor A, os valores neles apresentados não apresentam os valores conforme seria de prever. Os valores por eles apresentados são próximos de 0 g, mas todos os eixos apresentam um pequeno \textit{offset}. Esta situação explica-se com o facto de a calibração necessitar de um reajuste. Quanto às oscilações, assim como os giroscópios em regime estático, os acelerómetros apresentam também oscilações, ruido que pode interferir futuramente no tratamento dos dados. No caso do sensor A, o eixo Z é o que apresenta uma maior amplitude de oscilação, num total de 0.025 g. Uma vez que se encontra tabelado pelo fabricante um valor limite de $\pm$80 mg, o valor da amplitude das oscilações não é preocupante. Quanto ao sensor B, este apresenta uma amplitude máxima no eixo Y com um valor de 0.07, o que representa um valor um pouco superior ao referido pelo fabricante, $\pm$60 mg.

\begin{description}
\item[Movimentos de Translação]
\end{description}

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_acel_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:testes_trans_acel_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_acel_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:testes_trans_acel_Y_RAZOR}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_acel_Z_RAZOR.jpg}
\caption{Eixo Z}
\label{fig:testes_trans_acel_Z_RAZOR}
\end{subfigure}

\caption{Teste de movimento de translação - Acelerómetro - Sensor A}
\label{fig:testes_trans_acel_RAZOR}
\end{figure}


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_acel_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:testes_trans_acel_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_acel_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:testes_trans_acel_Y_POLOLU}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/trans_0_0_0_acel_Z_POLOLU.jpg}
\caption{Eixo Z}
\label{fig:testes_trans_acel_Z_POLOLU}
\end{subfigure}

\caption{Teste de movimento de translação - Acelerómetro - Sensor B}
\label{fig:testes_trans_acel_POLOLU}
\end{figure}

\begin{table}[!h]
\begin{center}
\resizebox{6cm}{!}{
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{3}{ |c| }{Erro Máximo - Acelerómetro (\textit{g}) } \\
\hline
& Sensor \textbf{A} & Sensor \textbf{B} \\
\hline
Translação & 0.2 & 0.6 \\
\hline
\end{tabular}
}
\caption{Valores de erro máximo para movimentos de translação - acelerómetro.}
\label{tab:fanuc_trans_accel}
\end{center}
\end{table}

\parl Os gráficos apresentados nas figuras \ref{fig:testes_trans_acel_X_RAZOR}, \ref{fig:testes_trans_acel_Y_RAZOR} e \ref{fig:testes_trans_acel_Z_RAZOR}, para o sensor A e \ref{fig:testes_trans_acel_X_POLOLU}, \ref{fig:testes_trans_acel_Y_POLOLU} e \ref{fig:testes_trans_acel_Z_POLOLU}, para o sensor B, mostram os resultados dos acelerómetros de ambos os sensores, nos testes com movimentos de translação.

\parl Nesta experiência, o braço robótico descreve, segundo um eixo de cada vez, um movimento de translação num sentido e de seguida no sentido oposto, voltando ao local de origem. Aqui, os acelerómetros de ambos os sensores A e B, apresentam oscilação mais acentuada, proveniente da vibração presente no braço robótico, causada pelo funcionamento dos motores do mesmo.

\parl Durante o movimento segundo um eixo, verifica-se que continuam a existir oscilações nos restantes eixos. Na tabela \ref{tab:fanuc_trans_accel}, estão apresentadas as amplitudes máximas das oscilações, sendo que para o sensor A, o valor é de 0.2 \textit{g} e para o sensor B, é de 0.6 \textit{g}.

%\parl Nestes testes, pode-se observar que em ambos os sensores A e B, os acelerómetros são ruidosos. Com movimentos cuja velocidade se aproxima dos 900 mm/s, os valores da aceleração que o braço robótico fez sentir nos acelerómetros é difícil de distinguir do ruido que estes apresentam. Sendo assim, a alternativa de calcular o deslocamento de um sensor integrando duplamente os resultados dos acelerómetros fica inviabilizado, pois o erro cometido será de largas proporções.

\begin{description}
\item[Movimentos de Rotação]
\end{description}

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_acel_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:testes_rot_acel_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_acel_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:testes_rot_acel_Y_RAZOR}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_acel_Z_RAZOR.jpg}
\caption{Eixo Z}
\label{fig:testes_rot_acel_Z_RAZOR}
\end{subfigure}

\caption{Teste de movimento de rotação - Acelerómetro - Sensor A}
\label{fig:testes_rot_acel_RAZOR}
\end{figure}


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_acel_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:testes_rot_acel_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_acel_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:testes_rot_acel_Y_POLOLU}
\end{subfigure}


\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/rot_0_0_0_acel_Z_POLOLU.jpg}
\caption{Eixo Z}
\label{fig:testes_rot_acel_Z_POLOLU}
\end{subfigure}

\caption{Teste de movimento de rotação - Acelerómetro - Sensor B}
\label{fig:testes_rot_acel_POLOLU}
\end{figure}

\begin{table}[!h]
\begin{center}
\resizebox{6cm}{!}{
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{3}{ |c| }{Erro Máximo - Acelerómetro \textit{g} } \\
\hline
& Sensor \textbf{A} & Sensor \textbf{B} \\
\hline
Rotação & - & 0.8 \\
\hline
\end{tabular}
}
\caption{Valores de erro máximo para movimentos de rotação - acelerómetro.}
\label{tab:fanuc_rot_accel}
\end{center}
\end{table}

\parl Os gráficos que podem ser encontrados nas figuras \ref{fig:testes_rot_acel_X_RAZOR}, \ref{fig:testes_rot_acel_Y_RAZOR} e \ref{fig:testes_rot_acel_Z_RAZOR} para o sensor A, \ref{fig:testes_rot_acel_X_POLOLU}, \ref{fig:testes_rot_acel_Y_POLOLU} e \ref{fig:testes_rot_acel_Z_POLOLU}, para o sensor B apresentam mais uma vez as curvas dos sensores para movimentos de rotação, mas desta vez avaliando os resultados obtidos nos acelerómetros.

\parl Na ausência de movimentos de translação, os acelerómetros, através da sua inclinação em relação ao vetor gravitacional da terra, fornecem o valor de dois dos três ângulos de \textit{Euler}, \textit{roll} e \textit{pitch}, ou seja, em relação ao referencial do braço robótico, estas inclinações correspondem respetivamente à rotação segundo o eixo \textit{X} e à rotação segundo o eixo \textit{Y}.

\parl Uma vez que os testes de rotação realizados, não apresentam translação, neste caso, os acelerómetros funcionam como "inclinómetros", variando os seus valores entre os 0 \textit{g} e os $\pm$ 1 \textit{g}.

\parl Durante a realização dos testes de rotação, na movimentação de um determinado eixo, os restantes eixos apresentam oscilações. Na tabela \ref{tab:fanuc_rot_accel}, apresentam-se os valores da amplitude máxima de oscilação dos sensores. Para o sensor B, esse valor é de 0.6 \textit{g}, e uma vez que o valor das oscilações do sensor A são muito inferiores em relação às do sensor B, podem-se considerar os seus valores desprezáveis.


%\parl Na ausência de movimentos de translação os acelerómetros apenas apresentam valores em função da sua inclinação face ao vetor da aceleração grafítica. Sendo assim, Os valores que qualquer um dos eixos deve apresentar será entre 0 g e $\pm$1 g. O primeiro valor, ou seja 0 g, será apresentado no acelerómetro de um eixo se este estiver perpendicular ao vetor do aceleração gravítica e $\pm$1 g caso o eixo do correspondente acelerómetro se encontrar paralelo ao vetor da aceleração gravítica. Para variações angulares que possam diferir destas, os valores como já disse ausentes de aceleração gravítica, serão compreendidos entre 0 e $\pm$1.
\begin{table}[!h]
\begin{center}
\begin{tabular}{| c | c | c |}
\hline
\multicolumn{3}{| c |}{Erro Máximo} \\
\hline
& Sensor A & Sensor B \\
\cline{2-3}
& \multicolumn{2}{ c |}{Giroscópio (\textit{$^{\circ}{\rm /s}$})} \\
\hline
Imóvel & 0.13 & 0.8 \\
\hline
Translação & 1.8 & 1.7 \\
\hline
Rotação & - & - \\
\hline
& \multicolumn{2}{ c |}{Acelerómetro (\textit{g})} \\
\hline
Imóvel & 0.015 & 0.055 \\
\hline
Translação & 0.2 & 0.6 \\
\hline
Rotação & - & 0.8 \\
\hline
\end{tabular}
\caption{Resultados dos testes realizados com giroscópios e acelerómetros.}
\label{tab:fanuc_total_mov}
\end{center}
\end{table}

\parl Na tabela \ref{tab:fanuc_total_mov}, encontram-se todos os resultados dos testes até então descritos. Numa análise geral dos resultados, pode-se concluir, que em praticamente todas as situações, o sensor A obteve menor amplitude de erro.

\parl Nos testes com o braço robótico imóvel, a amplitude de erro dos sensores apresentaram sempre valores mais baixos do que nos restantes testes em que o braço robótico se encontra em movimento. Isto deve-se essencialmente a dois fatores. O primeiro, reside no fato de que quando o braço robótico se encontra imóvel, os seus atuadores não se encontram em esforço, mas quando este se movimenta, os atuadores encontram-se em ação, representando assim uma fonte de vibração que causa distúrbios nos sensores. Outro fator que contribui para o aumento da amplitude das oscilações dos sensores, foca-se no comportamento dos sensores, quando estes se encontram em movimento, isto é, no movimento segundo um determinado eixo, esse movimento não irá apenas afetar o eixo correspondente, mas também irá causar interferências nos restantes, provocando assim interferências.

\parl Uma vez que, nos movimentos de translação, durante a avaliação dos acelerómetros, o valor da amplitude de oscilação subiu para valores, por vezes, da mesma ordem de grandeza dos valores de aceleração que se pretendeu estudar, surge aqui a necessidade de esta avaliação ser realizada através de outra montagem que permita obter dados dos acelerómetros de uma forma mais eficaz.

\parl De notar, que com o ruido induzido pelas vibrações do braço robótico, criou condições para que o cálculo do deslocamento através da dupla integração dos dados dos acelerómetros, fosse retirado do âmbito de estudo. No entanto, os dados observados em movimentos de rotação, por parte dos giroscópios, apresentam um contraste entre o seu ruido e os dados da velocidade angular, que contribuem para futuros testes que visem avaliar a integração da velocidade angular.

\begin{description}
\item[Acelerómetros como "Inclinómetros"]
\end{description}

\parl A avaliação dos acelerómetros como "inclinómetros", foi realizada através da extração de dados dos mesmos, com o braço robótico imóvel (para que o valor dos acelerómetros variem apenas entre 0 e $\pm$ 1 \textit{g}), mas com várias orientações. Deste modo, quando se verifica uma rotação em torno do eixo Y$_{g}$, figura \ref{fig:inclin_esquema}, ou uma rotação em torno do eixo X$_{g}$, figura \ref{fig:inclin_esquema_2}, é possível calcular o valor angular destas rotações, através das equações \ref{eq:calc_inclin_pitch} e \ref{eq:calc_inclin_roll}, respetivamente. Nas duas situações, o referencial global é composto pelos eixos X$_{g}$, Y$_{g}$ e Z$_{g}$ e o referencial do acelerómetro é composto pelos eixos X$_{s}$, Y$_{s}$ e Z$_{s}$. O vetor da aceleração gravitacional terrestre \textit{g}, é coincidente com o eixo Z$_{g}$.


%\parl Uma vez que em movimentos de translação lineares, à velocidade a que os testes foram realizados, os acelerómetros de ambos os sensores mostraram não ser capazes de fornecer informação que permitisse calcular o deslocamento dos mesmos, resta a abordagem de medir a inclinação dos acelerómetros em relação ao vetor da aceleração gravítica. Sendo bem sucedidos nesta informação, estes valores podem servir de referência para o cálculo de rotações realizado pelos giroscópios.
%\parl Os principais problemas desta metodologia residem nos factos de este tipo de cálculo só ser possível quando os acelerómetros apenas detetam o vetor da aceleração gravítica e de apenas ser possível, caso a primeira condição se verifique, o cálculo de duas inclinações, as equivalentes ao \textit{pitch} e \textit{roll}.
%
%\parl Para avaliar a capacidade dos acelerómetros de ambos os sensores A e B devolverem valores que se traduzam nas inclinações correspondentes ao \textit{pitch} e \textit{roll}, foram realizados novos testes. Esses testes consistiram apenas no posicionamento do \textit{end-effector} do braço robótico num ponto fixo no espaço cartesiano fazendo variar entre cada teste a inclinação deste. Assim, foi possível obter resultados dos acelerómetros dos sensores A e B contendo apenas valores relativos ao vetor da aceleração gravítica. Com estes resultados extraídos bastou apenas aplicar relações trigonométricas que traduzem os resultados em valores angulares das inclinações.
%
%\parl Como se pode observar na figura \ref{fig:inclin_esquema}, quando no sensor se faz sentir uma inclinação os eixos do acelerómetro sofrem uma rotação, alterando assim a proporção dos seus valores em comparação ao vetor da aceleração gravítica, por exemplo, caso um dos eixos esteja completamente alinhado com esse vetor, apresenta o seu valor máximo/mínimo ,$\pm$1 g, e os restantes apresentam valores muito próximos de 0. Assim que se faz sentir uma rotação em torno de algum dos eixos que no momento não seja paralelo com o vetor da aceleração da gravidade, o valor do primeiro eixo com valor máximo/mínimo aproxima-se de 0 e um, ou mesmo os dois restantes, ficam com os seus valores a aproximar-se de um dos extremos $\pm$1 g.

%\begin{figure}[H]
%\centering
%\includegraphics[scale=0.8]{Imagens/inclinometro_example.png}
%\caption{Demonstração de ângulo a medir com a inclinação do acelerómetro}
%\label{fig:inclin_esquema}
%\end{figure}

\begin{figure}[H]
\centering

\begin{subfigure}{0.35\textwidth}
\includegraphics[width=\textwidth]{Imagens/inclinometro_example.png}
\caption{Rotação no eixo Y$_{s}$ - \textit{pitch}}
\label{fig:inclin_esquema}
\end{subfigure}
~
\begin{subfigure}{0.35\textwidth}
\includegraphics[width=\textwidth]{Imagens/inclinometro_example_2.png}
\caption{Rotação no eixo X$_{s}$ - \textit{roll}}
\label{fig:inclin_esquema_2}
\end{subfigure}

\caption{Comparação Valores Inclinação - Sensor B}
\label{fig:inclin_esquema_geral}
\end{figure}

%\parl Como se pode observar na figura \ref{fig:inclin_esquema}, dada uma rotação no eixo Yg, sendo sendo Xg e Zg os eixos correspondentes ao plano por eles formado, normal ao eixo Yg que sofreu a rotação, o ângulo $\alpha$ dado por essa rotação é expresso pela equação \ref{eq:calc_inclin_pitch}, onde X' representa o eixo local do acelerómetro após a sua rotação. A $\alpha$ pode-se dar o nome de \textit{pitch}

\begin{equation}
\textit{pitch} = \theta = \arcsin (\frac{X_{s}}{g})
\label{eq:calc_inclin_pitch}
\end{equation}

\begin{equation}
\textit{roll} = \phi = \arcsin (\frac{Y_{s}}{g})
\label{eq:calc_inclin_roll}
\end{equation}

%\parl Analogamente, pode ser realizada a mesma operação sempre que se verificar uma rotação similar desta vez em torno do eixo Xg. Assim, a equação que expressa o novo ângulo entre Y' e Zg, onde Y' representa o eixo do acelerómetro que sofreu uma rotação, denominando esse ângulo de $\beta$ , é expresso pela equação \ref{eq:calc_inclin_roll}. A $\beta$ dá-se o nome de \textit{roll}

\parl Nas figuras \ref{fig:inclin_0_raw_RAZOR}, \ref{fig:inclin_0_X_RAZOR} e \ref{fig:inclin_0_Y_RAZOR} correspondentes ao sensor A e, \ref{fig:inclin_0_raw_POLOLU}, \ref{fig:inclin_0_X_POLOLU} e \ref{fig:inclin_0_Y_POLOLU}, correspondentes aos sensor B, encontram-se os resultados dos testes de inclinação resultantes dos acelerómetros para a posição inicial, isto é, quando o eixo Z$_{s}$ apresenta a mesma direção do vetor da aceleração gravitacional.

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/raw_0_RAZOR.jpg}
\caption{Dados Acelerómetro - Sensor A.}
\label{fig:inclin_0_raw_RAZOR}
\end{subfigure}

\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_0_X_RAZOR.jpg}
\caption{Eixo X.}
\label{fig:inclin_0_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_0_Y_RAZOR.jpg}
\caption{Eixo Y.}
\label{fig:inclin_0_Y_RAZOR}
\end{subfigure}

\caption{Teste inclinação 0$^{\circ}$ - X - Acelerómetro - Sensor A}
\label{fig:inclin_0_RAZOR}
\end{figure}

\parl Ao observar o gráfico apresentado na figura \ref{fig:inclin_0_raw_RAZOR}, pode observar-se que que os valores do sensor A, não se encontram enquadrados nos valores esperados, uma vez que as curvas dos eixos \textit{X} e \textit{Y} não oscilam em torno de 0 \textit{g}, indica mais uma vez a necessidade de este sensor ser recalibrado. Como resultado, nos gráficos das figuras \ref{fig:inclin_0_X_RAZOR} e \ref{fig:inclin_0_Y_RAZOR}, observa-se que as curvas não se apresentam oscilações em torno de 0 $^{\circ}$, oscilando, como pode ser consultado na tabela \ref{tab:fanuc_inclin_0}, em torno de 3.3$^{\circ}$ e 2.1$^{\circ}$. Aqui, a amplitude máxima de oscilação observada para os eixos X e Y do sensor são de 0.5$^{\circ}$ e 0.6$^{\circ}$ respetivamente.


%\parl Nas figuras \ref{fig:inclin_0_raw_RAZOR}, \ref{fig:inclin_0_X_RAZOR} e \ref{fig:inclin_0_Y_RAZOR} correspondentes ao sensor A e, \ref{fig:inclin_0_raw_POLOLU}, \ref{fig:inclin_0_X_POLOLU} e \ref{fig:inclin_0_Y_POLOLU} correspondentes aos sensor B encontram-se os resultados dos testes de inclinação resultantes dos acelerómetros no momento em que a inclinação do braço robótico é nula, ou seja, o eixo Z encontra-se alinhado com o vetor da aceleração gravítica. Por isso, teoricamente os valores esperados seriam, utilizando as equações \ref{eq:calc_inclin_pitch} e \ref{eq:calc_inclin_roll}, 0$^{\circ}$ para ambos os eixos X e Y de ambos os sensores.
%
%\parl Para o sensor A, os resultados não corresponderam ao valore teórico. Esta situação pode ser explicada, como já anteriormente foi referido, pelo facto da calibração deste sensor necessitar de ser ajustada. No entanto, em termos relativos os valores mostrados nos gráficos do sensor A mostram oscilações com uma amplitude máxima de 1.2$^{\circ}$.
%
%\parl Para o sensor B, já se encontram valores médios mais próximos do valor teórico. Ainda assim, existe neste sensor também o problema do ruido, ou oscilações. Para os acelerómetros deste tipo de sensor, a amplitude máxima encontrada é de 3.5$^{\circ}$.


\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/raw_0_POLOLU.jpg}
\caption{Dados Acelerómetro - Sensor B}
\label{fig:inclin_0_raw_POLOLU}
\end{subfigure}

\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_0_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:inclin_0_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_0_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:inclin_0_Y_POLOLU}
\end{subfigure}

\caption{Teste inclinação 0$^{\circ}$ - X - Acelerómetro - Sensor B}
\label{fig:inclin_0_POLOLU}
\end{figure}

\parl Na mesma experiência para o sensor B, na figura \ref{fig:inclin_0_raw_POLOLU}, pode-se observar que as curvas para os eixos X e Y do sensor, apresentam valores que oscilam em torno de 0$^{\circ}$. Para além disso, pode-se observar nos gráficos das imagens \ref{fig:inclin_0_X_POLOLU} e \ref{fig:inclin_0_Y_POLOLU}, os valores médios sobre os quais os valores oscilam, são, segundo a tabela \ref{tab:fanuc_inclin_0}, de 0$^{\circ}$ e 0.2$^{\circ}$. No entanto, segundo a mesma tabela, a amplitude máxima da oscilação apresentada, é de 1.7$^{\circ}$ para os dois eixos.

\begin{table}[!h]
\begin{center}
\begin{tabular}{| c | c | c | c | c |}
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 0$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 0 & 0 & 0 \\
\hline
Valor médio medido ($^{\circ}$) & 3.3 & 2.1 & 0 & 0.2 \\
\hline
Erro Máximo ($^{\circ}$) & 0.5 & 0.6 & 1.7 & 1.7 \\
\hline
\end{tabular}
\caption{Resultados de "inclinómetros", para \textit{roll} = 0$^{\circ}$ e \textit{pitch} = 0$^{\circ}$.}
\label{tab:fanuc_inclin_0}
\end{center}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/raw_50_RAZOR.jpg}
\caption{Dados Acelerómetro - Sensor A}
\label{fig:inclin_50_raw_RAZOR}
\end{subfigure}

\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_50_X_RAZOR.jpg}
\caption{Eixo X}
\label{fig:inclin_50_X_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_50_Y_RAZOR.jpg}
\caption{Eixo Y}
\label{fig:inclin_50_Y_RAZOR}
\end{subfigure}

\caption{Teste inclinação 50$^{\circ}$ - X - Acelerómetro - Sensor A}
\label{fig:inclin_50_RAZOR}
\end{figure}

\parl Nas figuras \ref{fig:inclin_50_raw_RAZOR}, \ref{fig:inclin_50_X_RAZOR} e \ref{fig:inclin_50_Y_RAZOR} correspondentes ao sensor A e, \ref{fig:inclin_50_raw_POLOLU}, \ref{fig:inclin_50_X_POLOLU} e \ref{fig:inclin_50_Y_POLOLU} correspondentes aos sensor B, encontram-se representados os resultados dos testes realizados com uma rotação em torno do eixo X de 50$^{\circ}$.

%\parl Como aconteceu anteriormente quando o ângulo de inclinação era de 0$^{\circ}$, o sensor A apresenta resultados que se afastam um pouco do resultado que seria de esperar. Um dos motivos centra-se mais uma vez na falta do ajuste na calibração. Mesmo com a calibração correta, por exemplo o sensor B, apresenta um pequeno erro no valor médio sobre o qual os valores dos sensores oscilam, o que leva a crer que mesmo com a correção da calibração necessária aplicada no sensor A, este continuaria com um erro de medida. Quando os valores de ambos os sensores apresentados deveriam ser no eixo X próximos de 0$^{\circ}$, na realidade o sensor A apresenta um valor médio que ronda os 2.5$^{\circ}$ e o sensor B apresenta um valor médio que ronda os 3$^{\circ}$. Já para o eixo Y, o valor teórico deveria ser aproximadamente 50$^{\circ}$, contudo, o sensor A apresenta através do gráfico 55$^{\circ}$ aproximadamente e o sensor B situa-se próximo dos 51. Relativamente às oscilações presentes nos gráficos, o sensor A nesta situação apresenta uma amplitude máxima de 2$^{\circ}$ e o sensor B apresenta uma amplitude máxima de oscilações um pouco acima dos 5$^{\circ}$.

\begin{figure}[H]
\centering
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/raw_50_POLOLU.jpg}
\caption{Dados Acelerómetro - Sensor B}
\label{fig:inclin_50_raw_POLOLU}
\end{subfigure}

\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_50_X_POLOLU.jpg}
\caption{Eixo X}
\label{fig:inclin_50_X_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_50_Y_POLOLU.jpg}
\caption{Eixo Y}
\label{fig:inclin_50_Y_POLOLU}
\end{subfigure}

\caption{Teste inclinação 50$^{\circ}$ - X - Acelerómetro - Sensor B}
\label{fig:inclin_50_POLOLU}
\end{figure}

\parl Uma vez mais, o sensor A evidencia a necessidade de ajuste na sua calibração, uma vez que os valores da curva do eixo X representada no gráfico da figura \ref{fig:inclin_50_RAZOR}, se afastam um pouco do valor que seria de esperar, ou seja, 0 \textit{g}. Como se pode observar na tabela \ref{tab:fanuc_inclin_50}, os valores médios registados pelos sensores A e B, são respetivamente 2.5 e 3 para o eixo X e para o eixo Y são 55$^{\circ}$ e 51$^{\circ}$. A partir da mesma tabela, pode-se observar que os valores de oscilação máximos para o sensor A foram de 1$^{\circ}$ e 0.7$^{\circ}$ para os eixos X e Y e para o sensor B, de 3$^{\circ}$ para ambos os eixos.

\begin{table}[!h]
\begin{center}
\begin{tabular}{| c | c | c | c | c |}
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 50$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 50 & 0 & 50 \\
\hline
Valor médio medido ($^{\circ}$) & 2.5 & 55 & 3 & 51 \\
\hline
Erro Máximo ($^{\circ}$) & 1 & 0.7 & 3 & 3 \\
\hline
\end{tabular}
\caption{Resultados de "inclinómetros", para \textit{roll} = 50$^{\circ}$ e \textit{pitch} = 0$^{\circ}$.}
\label{tab:fanuc_inclin_50}
\end{center}
\end{table}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[H]
\centering

\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_30_Y_RAZOR.jpg}
\caption{Eixo Y - 30$^{\circ}$}
\label{fig:inclin_30_Y_RAZOR}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_35_Y_RAZOR.jpg}
\caption{Eixo Y - 35$^{\circ}$}
\label{fig:inclin_35_Y_RAZOR}
\end{subfigure}

\caption{Comparação Valores Inclinação - Sensor A}
\label{fig:inclin_compare_RAZOR}
\end{figure}


\begin{figure}[H]
\centering

\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_30_Y_POLOLU.jpg}
\caption{Eixo Y - 30$^{\circ}$}
\label{fig:inclin_30_Y_POLOLU}
\end{subfigure}
~
\begin{subfigure}{0.45\textwidth}
\includegraphics[width=\textwidth]{Imagens/sensors_images/inclin_35_Y_POLOLU.jpg}
\caption{Eixo Y - 35$^{\circ}$}
\label{fig:inclin_35_Y_POLOLU}
\end{subfigure}

\caption{Comparação Valores Inclinação - Sensor B}
\label{fig:inclin_compare_POLOLU}
\end{figure}

\parl Os gráficos apresentados nas figuras \ref{fig:inclin_30_Y_RAZOR} e \ref{fig:inclin_35_Y_RAZOR} para o sensor A e \ref{fig:inclin_30_Y_POLOLU} e \ref{fig:inclin_35_Y_POLOLU} para o sensor B, contêm os resultados obtidos para inclinações de 30$^{\circ}$ e 35$^{\circ}$. Como se verifica na tabela \ref{tab:fanuc_inclin_30}, quando o ângulo \textit{roll} é de 30$^{\circ}$, para o sensor A, o valor médio obtido foi de 34.5$^{\circ}$, apresentando uma amplitude de oscilação de aproximadamente 0.7$^{\circ}$, e para o sensor B na mesma inclinação, o valor médio obtido foi de 31.5$^{\circ}$, sendo que a amplitude máxima de oscilação obtida, foi aproximadamente de 2$^{\circ}$. Já na tabela \ref{tab:fanuc_inclin_35}, com o ângulo \textit{roll} de 35$^{\circ}$, o sensor A apresentou valores médios de 39.7$^{\circ}$ e uma amplitude de oscilação de 0.8$^{\circ}$ aproximadamente, e o sensor B, apresentou valores médios, próximos de 36$^{\circ}$, com amplitude máxima registada de aproximadamente 2$^{\circ}$.


\begin{table}[!h]
\begin{center}
\begin{tabular}{| c | c | c | c | c |}
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 30$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 30 & 0 & 30 \\
\hline
Valor médio medido ($^{\circ}$) & - & 34.5 & - & 31.5 \\
\hline
Erro Máximo ($^{\circ}$) & - & 0.7 & - & 2 \\
\hline
\end{tabular}
\caption{Resultados de "inclinómetros", para \textit{roll} = 30$^{\circ}$ e \textit{pitch} = 0$^{\circ}$.}
\label{tab:fanuc_inclin_30}
\end{center}
\end{table}

\begin{table}[!h]
\begin{center}
\begin{tabular}{| c | c | c | c | c |}
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 35$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 35 & 0 & 35 \\
\hline
Valor médio medido ($^{\circ}$) & - & 39.7 & - & 36 \\
\hline
Erro Máximo ($^{\circ}$) & - & 0.8 & - & 2 \\
\hline
\end{tabular}
\caption{Resultados de "inclinómetros", para \textit{roll} = 35$^{\circ}$ e \textit{pitch} = 0$^{\circ}$.}
\label{tab:fanuc_inclin_35}
\end{center}
\end{table}


\begin{table}[!h]
\begin{center}
\begin{tabular}{| c | c | c | c | c |}
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 0$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 0 & 0 & 0 \\
\hline
Valor médio medido ($^{\circ}$) & 3.3 & 2.1 & 0 & 0.2 \\
\hline
Erro Máximo ($^{\circ}$) & 0.5 & 0.6 & 1.7 & 1.7 \\
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 50$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 50 & 0 & 50 \\
\hline
Valor médio medido ($^{\circ}$) & 2.5 & 55 & 3 & 51 \\
\hline
Erro Máximo ($^{\circ}$) & 1 & 0.7 & 3 & 3 \\
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 30$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 30 & 0 & 30 \\
\hline
Valor médio medido ($^{\circ}$) & - & 34.5 & - & 31.5 \\
\hline
Erro Máximo ($^{\circ}$) & - & 0.7 & - & 2 \\
\hline
& \multicolumn{4}{ c |}{\textit{Roll = 35$^{\circ}$} , \textit{Pitch = 0$^{\circ}$}} \\
\cline{2-5}
& \multicolumn{2}{ c |}{Sensor A} & \multicolumn{2}{ c |}{Sensor B} \\
\cline{2-5}
& X & Y & X & Y \\
\hline
Valor real ($^{\circ}$) & 0 & 35 & 0 & 35 \\
\hline
Valor médio medido ($^{\circ}$) & - & 39.7 & - & 36 \\
\hline
Erro Máximo ($^{\circ}$) & - & 0.8 & - & 2 \\
\hline
\end{tabular}
\caption{Resultados de "inclinómetros", para \textit{roll} = 30$^{\circ}$ e \textit{pitch} = 0$^{\circ}$.}
\label{tab:fanuc_inclin_total}
\end{center}
\end{table}
%\parl Os gráficos apresentados nas figuras \ref{fig:inclin_30_Y_RAZOR} e \ref{fig:inclin_35_Y_RAZOR} para o sensor A e \ref{fig:inclin_30_Y_POLOLU} e \ref{fig:inclin_35_Y_POLOLU} para o sensor B pretendem estabelecer uma perceção do tipo de precisão que é possível obter com os dados fornecidos pelos acelerómetros, funcionando para obter as inclinações. Nos gráficos das imagens \ref{fig:inclin_30_Y_RAZOR} e \ref{fig:inclin_30_Y_POLOLU} encontram-se os valores para cada um dos sensores com uma inclinação de 30$^{\circ}$ e nos gráficos das imagens \ref{fig:inclin_35_Y_RAZOR} e \ref{fig:inclin_35_Y_POLOLU}, encontram-se os valores de ambos os sensores para inclinações de 35$^{\circ}$.
%
%\parl Calibrações e valores absolutos à parte, em ambos os casos, a diferença relativa entre os valores obtidos para a inclinação de 30$^{\circ}$ e de 35$^{\circ}$ é sempre muito próxima dos 5$^{\circ}$. Estes testes foram repetidos para mais ângulos de inclinação, onde se concluiu que as relações entre resultados obtidos correspondiam aproximadamente aos valores teóricos.
%
%\parl Este tipo de testes foi realizado com inclinações em intervalos de 5$^{\circ}$ pois o ruido, ou oscilações, dos resultados dos sensores por vezes fica próximo deste valor. Para intervalos menores que estes seria complicado estabelecer intervalos de tolerância.

\parl A tabela \ref{tab:fanuc_inclin_total} apresenta os resultados obtidos de todas as experiências de inclinação, para a avaliação dos acelerómetros como "inclinómetros". Ao analisar os dados, constata-se que para este tipo de utilização, o sensor A, apresenta oscilações de menor amplitude, comparativamente ao sensor B. No entanto, nos testes realizados para as inclinações de 30$^{\circ}$ e 35$^{\circ}$, para ambos os sensores, a diferença entre os resultados das duas inclinações foi sempre  próxima dos 5$^{\circ}$, concluindo assim, que ambos os sensores poderão realizar medições relativas, com intervalos de pelo menos 5$^{\circ}$ aproximadamente. Para corroborar estes resultados,foram realizadas outras medições com várias inclinações, sendo que os resultados apresentavam correspondência com os valores reais dos ângulos, na mesma ordem de grandeza dos resultados apresentados.

\parl Os testes realizados, foram estabelecidos com o intervalo mínimo de 5$^{\circ}$, uma vez que o ruído apresentado pelos sensores, em especial pelo sensor B, apresenta valores de oscilações próximas desta ordem de grandeza.

\parl Fica ainda por estudar os resultados que seria possível obter, com a aplicação de filtros, que permitam diminuir as oscilações, e realizar ainda testes com as calibrações ajustadas.
