Files
PFC/Documentation/abntex2ime/intro.tex

197 lines
13 KiB
TeX

% ----------------------------------------------------------
% Introdução (exemplo de capítulo sem numeração, mas presente no Sumário)
% ----------------------------------------------------------
\chapter{Introdução}
\label{chap:intro}
\section{Projeto SVTRP}
% ----------------------------------------------------------
\par O projeto de um sistema de viaturas terrestres remotamente pilotadas (SVTRP) é um dos projetos estratégicos desenvolvidos pelo Centro Tecnológico do Exército (CTEx) para o exército brasileiro, que tem por objetivo construir um pequeno veículo para vigilância e mapeamento de ambientes hostis e desconhecidos.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/PrimeiroPrototipo.jpg}
\caption{Primeiro protótipo de SVTRP do CTEx}
\label{fig:primeiroprototipo}
\end{figure}
\par Atualmente, já foi desenvolvido pelo CTEx o primeiro protótipo da plataforma de SVTRP, representado na figura \ref{fig:primeiroprototipo}, e o segundo protótipo ainda está em desenvolvimento. Dessa forma, foi decidido tomar o primeiro protótipo como base para o desenvolvimento do presente projeto de fim de curso.
% Conferir dimensões com o pessoal do CTEx
\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{img/DiagramaBlocosCTEx-crop.pdf}
\caption{Diagrama de blocos do SVTRP do CTEx}
\label{fig:diagramablocosctex}
\end{figure}
\par A plataforma SVTRP do CTEx possui quatro rodas paralelas fixas, tornando-se, assim, uma plataforma de movimento diferencial. Todos os motores são alimentados por pontes H e possuem encoder para medição de posição angular relativa, o que possibilita o controle de malha fechada da velocidade. Possui também um sensor inercial (IMU) de seis graus de liberdade (6-dof) contendo acelerômetro e giroscópio, mas que não contém bússola. Portanto, não é capaz de determinar sua orientação absoluta. Possui também um receptor GPS para determinação da posição global com precisão de alguns metros.
\par O microcontrolador responsável pelo controle de velocidade e também pela comunicação com os sensores é o STM32F103 "BluePill". É um modelo barato e facilmente encontrado no mercado nacional, porém de capacidade computacional suficiente para controle PID em malha fechada de motores com escovas e para comunicação com os sensores.
\par Além disso, o SVTRP do CTEx embarca um computador Jetson nano, responsável pela captação de imagens com as câmeras e pelo processamento do algoritmo de Simultaneous Location and Mapping (SLAM).
\par Todo o conjunto é alimentado por uma bateria de polímero de lítio (LiPo), com tensão regulada por um regulador chaveado de 3.3V.
\par As especificações da plataforma do CTEx podem ser vistas na tabela \ref{tab:specssvtrp} e seu diagrama de blocos na figura \ref{fig:diagramablocosctex}.
\begin{table}[ht]
\centering
\caption{Especificações do primeiro protótipo SVTRP}
\vspace{0.5cm}
\begin{tabular}{r|lr}
Componente & Especificação \\
\hline
Computador & Nvidia Jetson Nano \\
Microcontrolador & STMicroelectronics STM32F103C8 \\
Ponte H & STMicroelectronics VNH2SP30 \\
Sensor IMU & InvenSense MPU6050 \\
Sensor GPS & u-blox NEO-6M-0-001 \\
Motores & Pololu 37Dx68L
\end{tabular}
\label{tab:specssvtrp}
\end{table}
\section{Robôs para a competição SSL da RoboCup}
\par Devido às semelhanças mecânica e eletrônica entre os robôs de futebol de robôs categoria Small Size League (SSL) do IME, representado na figura \ref{fig:ssl2018} e a plataforma de SVTRP do CTEx, e aos problemas semelhantes enfrentados por ambos, foi levantada a possibilidade de desenvolver uma solução que atenda ambas as plataformas robóticas. Assim, tanto os interesses da equipe de robótica do IME (RoboIME), quanto do CTEx, poderão ser atendidos pelo mesmo projeto.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/SSL2018.jpg}
\caption{Robô de SSL do IME, sem carenagem}
\label{fig:ssl2018}
\end{figure}
\par A competição SSL é realizada anualmente no evento internacional RoboCup. Consiste em partidas de futebol entre equipes de robótica de diversas universidades. Nesta competição, as partidas são disputadas por um time de até seis robôs autônomos, que são controlados pelo computador da equipe (\textit{Team computer}), o qual não pode ser operado durante a execução do jogo. Sobre o campo existe uma câmera conectada a um computador (\textit{Vision computer}) responsável por processar as imagens e reconhecer os padrões de cores das carenagens dos robôs de ambos os times, assim como da bola. Estas informações são enviadas para os computadores de ambas as equipes, responsáveis por tomar as decisões e calcular as estratégias de jogo. Uma ilustração pode ser vista na figura \ref{fig:topologiassl}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/DiagramaSSL-crop.pdf}
\caption{Topologia de uma partida de SSL}
\label{fig:topologiassl}
\end{figure}
\par O robô de SSL do IME foi desenvolvido visando atender ao regulamento \cite{SSLRules2023} da competição RoboCup 2023. Sendo assim, deve caber dentro de um cilindro com 180mm de diâmetro e 150mm de altura. Deve ser capaz de atingir velocidades de até 4m/s e de chutar a bola a uma velocidade de até 6,5m/s.
\par Possui quatro rodas omnidirecionais, como a da figura \ref{fig:rodassl2018}, dispostas nos ângulos representados na figura \ref{fig:angulossl2018}. Sendo assim, é capaz de se movimentar em três graus de liberdade, chamados aqui de tangente, normal e angular, conforme a figura \ref{fig:cinematicassl}. As rodas dianteiras estão anguladas em 30 graus em relação à direção do movimento tangente, enquanto as traseiras estão em um ângulo de 45 graus. Isso torna o movimento tangente mais preciso do que o movimento normal. As rodas são acopladas aos motores por uma redução de 4:1, e possuem rodilhas dispostas de forma alternada, conforme a figura \ref{fig:rodilhassl2018}.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/RodaOmni.jpg}
\caption{Roda omnidirecional do robô de SSL do IME}
\label{fig:rodassl2018}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/AngulosRodas.png}
\caption{Disposição das rodas no robô de SSL}
\label{fig:angulossl2018}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.5\textwidth]{img/Cinematica.png}
\caption{Cinemática do robô de SSL}
\label{fig:cinematicassl}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/RodilhaSSL2018.jpg}
\caption{Rodilhas do robô de SSL do IME}
\label{fig:rodilhassl2018}
\end{figure}
\par Todos os motores são do tipo DC brushed (com escovas), e possuem encoder de 52 contagens por rotação (CPR) para medição de posição angular relativa. Assim, o robô emprega controle PID em malha fechada para a velocidade de cada uma das rodas, individualmente. São alimentados por uma ponte H da figura \ref{fig:ponteh2016} desenvolvida também pela equipe RoboIME \cite{TDPRoboIME2017}.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/PonteH2016.jpg}
\caption{Pontes H RoboIME 2016}
\label{fig:ponteh2016}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{img/DiagramaBlocosSSL2018-crop.pdf}
\caption{Diagrama de blocos do Robô de SSL do IME}
\label{fig:diagramablocosssl2018}
\end{figure}
\par Conforme o diagrama da figura \ref{fig:diagramablocosssl2018}, o microcontrolador utilizado é um STM32F407VG, da mesma família daquele empregado no SVTRP do CTEx. Dessa forma, o firmware desenvolvido para um dos robôs pode ser facilmente adaptado para o outro, sendo necessárias apenas pequenas alterações de compatibilidade. Para comunicação com o computador, o robô utiliza um rádio 2.4GHz modelo Semtech SX1280, embarcado em um módulo Ebyte E28-2G4M27S. Este rádio é capaz de se comunicar a distâncias de centenas de metros em campo aberto, a taxas de até 1,3Mbps.
\par Possui um sensor IMU com nove graus de liberdade (9-dof), contendo acelerômetro, giroscópio e magnetômetro. Portanto, é capaz de determinar sua orientação absoluta, porém incapaz de determinar posição absoluta sem ajuda de sistema de câmeras externo por não possuir GPS.
\begin{table}[ht]
\centering
\caption{Especificações do robô de SSL do IME}
\vspace{0.5cm}
\begin{tabular}{r|lr}
Componente & Especificação \\
\hline
Bateria & LiPo 3S 2200mAh \\
Microcontrolador & STMicroelectronics STM32F407VG \\
Ponte H & RoboIME 2016 \\
Módulo de chute & RoboIME 2022 \\
Sensor IMU & InvenSense MPU9250 \\
Sensor de corrente & Texas Instruments INA169NA \\
Rádio & Ebyte E28-2G4M27S \\
Motores & Generic JGB37-520
\end{tabular}
\label{tab:specsssl2018}
\end{table}
\section{Robô de desenvolvimento}
\par Devido à maior dificuldade de acesso no dia-a-dia ao robô SVTRP do CTEx e à maior complexidade do robô de SSL devido às rodas omnidirecionais, foi decidido construir um novo robô visando a modularidade e simplicidade da dinâmica. Dessa forma, foi construído o robô da figura \ref{fig:robodev}, cujo diagrama de blocos está representado na figura \ref{fig:diagramablocosrobodev}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/RoboDesenvolvimento.jpg}
\caption{Robô de desenvolvimento visto de frente}
\label{fig:robodev}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{img/DiagramaBlocosDev-crop.pdf}
\caption{Diagrama de blocos do Robô de desenvolvimento}
\label{fig:diagramablocosrobodev}
\end{figure}
\par Este robô é movimentado por motores semelhantes àqueles do robô de SSL, possuindo encoder de 52 CPR, porém com redução de 1:30, devido às rodas maiores. Sua cinemática é diferencial, semelhante à do SVTRP do CTEx, porém possui apenas duas rodas tracionadas e uma roda "boba" para apoio, que pode ser vista na figura \ref{fig:robodev2}. As rodas tracionadas foram escolhidas de forma que deslizem caso seja aplicado pelo motor um torque elevado, e o motor foi escolhido para ser capaz de aplicar torque que leve as rodas ao deslizamento.
\par Para possibilitar a modularidade e o experimento com diferentes sensores, motores e microcontroladores, foi decidido colocar sobre o robô uma protoboard, sustentada por uma base projetada em software CAD e manufaturada em impressora 3D, conforme figuras \ref{fig:basesolidworks} e \ref{fig:baserobo}.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/RoboDesenvolvimento2.jpg}
\caption{Robô de desenvolvimento visto de trás}
\label{fig:robodev2}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/BaseSolidWorks.jpg}
\caption{Base modelada no software CAD SolidWorks}
\label{fig:basesolidworks}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.75\textwidth]{img/BaseRobo.jpg}
\caption{Base impressa e montada no robô}
\label{fig:baserobo}
\end{figure}
\par Possui um sensor IMU 9-dof igual ao do robô de SSL, instalado no centro do robô, pontes H com sensores de corrente integrados, de forma que a corrente que entra em cada motor leve a uma tensão proporcional, que pode ser lida por um conversor analógico-digital (ADC) do microcontrolador.
\par O microcontrolador principal escolhido foi o STM32F103C8 "BluePill", o mesmo do SVTRP do CTEx, pois este possui características e especificações suficientes para o desenvolvimento do projeto e, por ser o mesmo do SVTRP do CTEx, faz com que fique mais simples de instalar o \textit{firmware} desenvolvido no SVTRP do CTEx posteriormente.
\par Para o comando, telemetria e coleta de dados, foi decidido utilizar um módulo ESP8266, capaz de se conectar a uma rede WiFi. Para o ESP8266 foi desenvolvido um \textit{firmware} que traduz a comunicação UART do microcontrolador principal em pacotes UDP \textit{multicast} e vice-versa.
\par Para auxílio no desenvolvimento, foi desenvolvida uma interface gráfica em LabVIEW que se comunica com o robô por UDP \textit{multicast}. Esta interface envia para o robô os comandos de velocidade desejada, da mesma forma como é feito no robô de SSL, e pode receber de volta os dados de telemetria desejados, como velocidade e aceleração das rodas medidas pelos encoders, acelerações medidas pelo IMU, corrente consumida pelos motores e tensão atual da bateria. A interface está representada na figura \ref{fig:interfacelabview}
\par Nesta interface, podem ser vistos gráficos das velocidades e acelerações em função do tempo, preenchidos em tempo real. Pode ser utilizada também para enviar comandos de velocidade desejada para o robô a partir de entradas do operador ou de rotinas de testes automáticos.
\begin{figure}[!ht]
\centering
\includegraphics[width=\textwidth]{img/FrontPanelLabVIEW-crop.pdf}
\caption{Interface gráfica no LabVIEW}
\label{fig:interfacelabview}
\end{figure}