\subsection{Controlo do Robô}

Sendo o funcionamento do robô tele-autónomo, o controlo do mesmo é dividido pelo operador e pela gestão dos seus sensores.

O controlo da primeira unidade do robô e da actuação das juntas é feito pelo operador a partir de um computador ligado a um módulo de XBee. Este troca mensagens automáticas com o robô utilizando o protocolo referido. Para isso, o protocolo de comunicação é transparente para o operador, sendo a navegação feita através do teclado. De futuro planeia-se adicionar o controlo através de \textit{joystick}.

O controlo das restantes unidades é feito de forma autónoma, por um comportamento de imitação do módulo à frente. Para além disso a detecção de pequenos obstáculos possibilita uma navegação mais facilitada para o operador. A secção seguinte indica a forma de funcionamento dos sistemas de autonomia do robô. 


\subsection{Autonomia de Navegação}

\label{sec:navegacao}

Uma vez que o controlo do robô é tele-autónomo, para além do controlo pelo operador existem sensores de ajuda à navegação.

\subsubsection{Navegação Autónoma das Unidades Posteriores}

O acoplamento entre as unidades utiliza uma junta universal. Essa articulação permite duas rotações em torno de um ponto. Como referido, é dessa forma que se obtém a rotação em torno dos eixos transversal e vertical do acoplamento.  

A variação do ângulo de rotação em torno do eixo transversal ocorre quando da actuação do acoplamento. A variação do ângulo em torno do eixo vertical ocorre em situação de curva. De forma a que as unidades à retaguarda possam navegar autonomamente é útil monitorizar os ângulos de rotação da junta do acoplamento, principalmente da rotação em torno do eixo vertical.

Foram estudadas duas formas para a determinação do ângulo da junta. Uma das formas envolvia a emissão de um cone de luz infravermelha por uma unidade e a detecção dessa luz em ponto específicos da unidade atrás. A figura \ref{fig:angu_luz} representa o sistema estudado. Apesar de permitir determinar ambos os ângulos da junta universal do acoplamento, esta forma não era muito precisa uma vez que dependia do terceiro grau de liberdade e não o contemplava. Além disso necessitava de um circuito de controlo que ocuparia um grande número de entradas do microcontrolador. 

\begin{figure}[ht]
\centering
\epsfig{file=proposta/imagens/luz.eps,width=80mm}
\caption{Representação esquemática da medição dos ângulos do acoplamento através de sistema de emissão e recepção de luz infravermelha.}
\label{fig:angu_luz}
\end{figure}

Desta forma, abandonou-se o sistema de luz infravermelha para a navegação do robô. A medição das distâncias assinaladas pelas setas na figura \ref{fig:dist} por sensores de proximidade permite determinar o ângulo em relação ao eixo vertical com a unidade em frente. Comparando as distâncias dos lados esquerdo e direito, torna-se possível determinar o ângulo da rotação referida. Este sistema apenas permite determinar o ângulo de rotação em torno do eixo vertical. Contudo, a determinação deste ângulo é praticamente independente dos restantes, dependendo apenas da orientação da unidade. Essa orientação é determinada através de um sensor de orientação. Além disso, a determinação deste ângulo é suficiente para a navegação e possibilita utilizar apenas três entradas do microcontrolador.

\begin{figure}[ht]
\centering
\epsfig{file=proposta/imagens/dist.eps,width=60mm}
\caption{Representação esquemática da medição de distância para navegação.}
\label{fig:dist}
\end{figure}

Conhecendo a orientação e o ângulo com a unidade da frente, é possível automatizar um comportamento de imitação, de forma a seguir-lo. Para isso, cada unidade navega de forma a aproximar a zero o ângulo com o módulo à sua frente. O sentido de rotação das rodas é determinado através da orientação. Esse comportamento provoca uma navegação e controlo mais simples para o operador.


\subsubsection{Ultrapassagem Autónoma de Pequenos Obstáculos}

Uma vez que os sensores de proximidade estão montados nos módulos base, comuns a todas as unidades, estes também são utilizados para apoio à ultrapassagem de pequenos obstáculos.

A detecção de um objecto em ambos os sensores de proximidade da primeira unidade provoca o envio de uma mensagem de forma a actuar a junta do primeiro acoplamento. A perda de obstáculo por ambos os sensores provoca o envio de uma nova mensagem terminando a actuação da junta referida e inicializando a actuação da junta seguinte. Desta forma é possível ultrapassar pequenos obstáculos sem actuação directa das juntas por parte do operador.

De forma a melhorar este nível de autonomia, prevê-se adicionar sensores ao módulo master, de forma a implementar o algoritmo sugerido em \cite{centipede}. Este prevê não só detectar obstáculos à frente do robô, mas também nas direcções oblíquas abaixo e acima. Desta forma, torna-se possível determinar um maior número de situações: terreno livre, espaço vazio em baixo, obstáculo ou ponto sem saída.

 
