Documentation: Todas as correções da banca
This commit is contained in:
@@ -139,58 +139,4 @@ 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}
|
||||
\end{table}
|
||||
Binary file not shown.
@@ -1,5 +1,59 @@
|
||||
\chapter{Projeto do sistema de controle anti-derrapagem}
|
||||
\label{chap:solucao}
|
||||
\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}
|
||||
|
||||
\section{Comunicação entre STM32 e GUI}
|
||||
\par Devido à necessidade de realizar a comunicação entre o robô e o computador sem que cabos prejudiquem as medições e o funcionamento, foi adotado o protocolo UDP, por ser possível o uso de comunicação WiFi. Para tal, foi implantado no robô um microcontrolador ESP8266, que possui um periférico UART, o qual pode ser utilizado para comunicação com o microcontrolador principal STM32, e um periférico WiFi, que pode ser utilizado para comunicação com o computador. Foi desenvolvido um firmware em $C++$ para o ESP8266 que converte os pacotes enviados por UART em pacotes UDP e vice-versa. Os pacotes UDP são transmitidos e recebidos por multicast, o que permitiria que fossem utilizados múltiplas interfaces gráficas para telemetria do robô.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
\par Neste capítulo será abordada a teoria utilizada para o desenvolvimento do projeto, além das considerações e simplificações adotadas na aplicação desta teoria aos casos particulares presentes no escopo do projeto. Serão também mencionadas as dificuldades e limitações de implementação prática desta teoria.
|
||||
|
||||
\section{Modelagem de um motor DC}
|
||||
\par O motor DC utilizado nos três robôs é do tipo com escovas (\textit{brushed}) de ímã permanente. Uma representação gráfica desse tipo de motor pode ser vista na figura \ref{fig:diagramamotordc}
|
||||
\par O motor DC utilizado nos robôs é do tipo com escovas (\textit{brushed}) de ímã permanente. Uma representação gráfica desse tipo de motor pode ser vista na figura \ref{fig:diagramamotordc}
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
@@ -52,7 +52,7 @@ e = K_e \cdot \dot{\theta}_m
|
||||
\end{equation}
|
||||
|
||||
% XL é desprezível para omega típicos?
|
||||
\par Na maioria dos motores DC comerciais, inclusive nos utilizados nos deste trabalho, o efeito da indutância é muito pequeno quando comparado com o efeito do momento de inércia. Assim, a função de transferência \ref{eqn:ftMotorDCCompleta} pode ser simplificada \cite{Franklin2019-dx} para:
|
||||
\par Na maioria dos motores DC comerciais, inclusive nos utilizados neste trabalho, o efeito da indutância é muito pequeno quando comparado com o efeito do momento de inércia, para as frequências típicas de operação. Assim, a função de transferência \ref{eqn:ftMotorDCCompleta} pode ser simplificada \cite{Franklin2019-dx} para:
|
||||
|
||||
\begin{equation}
|
||||
\frac{\dot{\theta}_m(s)}{V_a(s)} = \frac{K_p}{1 + T_{p1}s}
|
||||
@@ -91,11 +91,11 @@ T_{p1} = \frac{RJ}{bR + K_tK_e}
|
||||
|
||||
\par Onde $kp$, $ki$ e $kd$ são constantes chamadas respectivamente de proporcional, integral e derivativa, $U(s)$ é a saída do controlador PID e $E(s)$ é o sinal de erro que entra no controlador PID. Influenciam diretamente no comportamento do controlador PID e, portanto, do sistema de controle do robô de forma geral. Encontrar os melhores valores para estas constantes torna-se então um trabalho de otimização que pode ser auxiliado por métodos como os de Ziegler-Nichols \cite{Franklin2019-dx}.
|
||||
\par Contudo, esta função de transferência representa um controlador não-causal e, portanto, não pode ser aplicada diretamente a sistemas reais. Sendo assim, é necessário realizar adaptações ao implementar nos robôs.
|
||||
\par No robô de desenvolvimento, a planta pode ser entendida como sendo o conjunto que engloba a ponte H e o motor, enquanto as forças externas aplicadas ao motor serão vistas como perturbações $W(t)$ no sistema. Além disso, existem ainda perturbações $V(t)$ causadas por imprecisões dos sensores utilizados. O controlador PID e os cálculos dos sinais de referência e de erro serão implementados no \textit{firmware} do microcontrolador, o que faz com que o robô precise ser um sistema discreto a tempo discreto. Dessa forma, o diagrama de blocos do sistema de controle do robô de desenvolvimento é o da figura \ref{fig:diagramaPIDRobo}.
|
||||
\par Nos robô deste trabalho, a planta pode ser entendida como sendo o conjunto que engloba a ponte H e o motor, enquanto as forças externas aplicadas ao motor serão vistas como perturbações $W(t)$ no sistema. Além disso, existem ainda perturbações $V(t)$ causadas por imprecisões dos sensores utilizados. O controlador PID e os cálculos dos sinais de referência e de erro serão implementados no \textit{firmware} do microcontrolador, o que faz com que o robô precise ser um sistema discreto a tempo discreto. Dessa forma, o diagrama de blocos do sistema de controle dos robôs deste trabalho é o da figura \ref{fig:diagramaPIDRobo}.
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{img/DiagramaPIDRobo-crop.pdf}
|
||||
\caption{Diagrama de blocos do controle do robô de desenvolvimento}
|
||||
\caption{Diagrama de blocos do controle dos robôs}
|
||||
\label{fig:diagramaPIDRobo}
|
||||
\end{figure}
|
||||
|
||||
Reference in New Issue
Block a user