diff --git a/Documentation/abntex2ime/conclusao.tex b/Documentation/abntex2ime/conclusao.tex index fb2a340..7c1bb26 100644 --- a/Documentation/abntex2ime/conclusao.tex +++ b/Documentation/abntex2ime/conclusao.tex @@ -1,4 +1,7 @@ \chapter{Conclusão} +\par Foi desenvolvido um firmware capaz de ser portado para os três modelos de robô citados no capítulo \ref{chap:intro}, incluindo a otimização do controle PID para o robô de desenvolvimento. +\par Foram também desenvolvidas lógicas para detecção e correção de deslizamentos, testadas no robô de desenvolvimento com uma das rodas modificada para diminuição do coeficiente de atrito, o que evidencia a perda de direção provocada pelo deslizamento. + \section{Próximos passos} \subsection{Integração ao robô do CTEx} \par A integração ao robô do CTEx pode ser feita utilizando-se o mesmo firmware do robô de desenvolvimento, tendo em vista que ambos utilizam o mesmo microcontrolador, apenas adaptando para os diferentes pinos do microcontrolador que os componentes estão conectados. Além disso, deve-se repetir os passos tomados para a calibração das constantes do controle PID e da detecção de deslizamento. @@ -7,4 +10,10 @@ \par Para que a detecção e a correção dos deslizamentos também seja possível em casos de arrancadas e frenagens em curvas, é necessário adaptar os cálculos para um problema bidimensional, onde deve ser considerada a aceleração angular do movimento, não apenas a tangente. \subsection{Integração ao robô da SSL (solução tridimensional)} -\par Para integrar o projeto ao robô da SSL é necessário fazer adaptações no firmware, tendo em vista que o robô da SSL utiliza um microcontrolador de modelo diferente, porém do mesmo fabricante e da mesma família. Além disso, como o robô da SSL movimenta-se com rodas omnidirecionais, será necessário também adaptar os cálculos da dinâmica e da comparação, sendo necessário considerar também a aceleração normal do movimento, não só a angular e a tangente. \ No newline at end of file +\par Para integrar o projeto ao robô da SSL é necessário fazer adaptações no firmware, tendo em vista que o robô da SSL utiliza um microcontrolador de modelo diferente, porém do mesmo fabricante e da mesma família. Além disso, como o robô da SSL movimenta-se com rodas omnidirecionais, será necessário também adaptar os cálculos da dinâmica e da comparação, sendo necessário considerar também a aceleração normal do movimento, não só a angular e a tangente. + +\subsection{Melhorias nos filtros} +\par Os filtros passa-baixa aplicados às leituras do IMU e do encoder provocaram atrasos diferentes nas medições, o que levou a alguns falsos positivos na detecção do deslizamento. Uma possível melhoria é uma melhor implementação dos filtros que faça com que eles tenham atrasos semelhantes e, preferencialmente, menores do que os atuais. + +\subsection{Implementação standalone no robô} +\par Atualmente, A detecção e a correção do deslizamento estão implementados no programa de LabVIEW, executado no computador. A implementação das lógicas de detecção e correção, incluindo seus filtros, no robô, pode trazer reações mais rápidas do robô ao deslizamento, o que pode melhorar ainda mais os resultados das medidas corretivas. \ No newline at end of file diff --git a/Documentation/abntex2ime/img/BluePill.jpg b/Documentation/abntex2ime/img/BluePill.jpg new file mode 100644 index 0000000..d81322c Binary files /dev/null and b/Documentation/abntex2ime/img/BluePill.jpg differ diff --git a/Documentation/abntex2ime/img/RoboMod.jpg b/Documentation/abntex2ime/img/RoboMod.jpg new file mode 100644 index 0000000..16722aa Binary files /dev/null and b/Documentation/abntex2ime/img/RoboMod.jpg differ diff --git a/Documentation/abntex2ime/img/STM32Cube.png b/Documentation/abntex2ime/img/STM32Cube.png new file mode 100644 index 0000000..e14c4a9 Binary files /dev/null and b/Documentation/abntex2ime/img/STM32Cube.png differ diff --git a/Documentation/abntex2ime/main.pdf b/Documentation/abntex2ime/main.pdf index 4984a97..753fea3 100644 Binary files a/Documentation/abntex2ime/main.pdf and b/Documentation/abntex2ime/main.pdf differ diff --git a/Documentation/abntex2ime/resultados.tex b/Documentation/abntex2ime/resultados.tex index 116f138..b18d5dd 100644 --- a/Documentation/abntex2ime/resultados.tex +++ b/Documentation/abntex2ime/resultados.tex @@ -39,4 +39,12 @@ \par Nos experimentos dos gráficos \ref{fig:acc0.5}, \ref{fig:acc0.7} e \ref{fig:acc1.0} houveram deslizamentos. Tais deslizamentos podem ser vistos pelas diferenças entre os gráficos de aceleração das rodas, medidas pelo encoder, e do chassi, medidas pelo IMU. Pode-se observar que para os três experimentos a aceleração do chassi não passou de um valor limite, em torno de $3m/s^2$ e $4m/s^2$, determinado pela máxima força de atrito entre as rodas e o chão. Enquanto isso, os gráficos de aceleração das rodas chegaram a valores maiores, limitados apenas pela força máxima do motor, que é maior do que o máximo do atrito. \par Desta forma, a fim de compensar pelas imprecisões dos sensores e aplicar correção apenas aos deslizamentos mais severos, pode-se decidir por tomar as medidas corretivas caso a diferença entre as acelerações da roda e do chassi supere $5m/s^2$. -\section{Correção do deslizamento} \ No newline at end of file +\section{Correção do deslizamento} +\par Nos testes realizados com o robô modificado da figura \ref{fig:roboMod}, a correção aplicada apresentou resultados satisfatórios, evidenciados quando os coeficientes de atrito das duas rodas do robô de desenvolvimento são diferentes. No caso da figura \ref{fig:acc1.0}, sem aplicação de correção o desvio da trajetória chegou a 30º, enquanto com a correção o desvio ficou em até 5º. + +\begin{figure}[!ht] + \centering + \includegraphics[width=0.75\textwidth]{img/RoboMod.jpg} + \caption{Robô modificado para coeficientes de atrito diferentes} + \label{fig:roboMod} +\end{figure} \ No newline at end of file diff --git a/Documentation/abntex2ime/solucao.tex b/Documentation/abntex2ime/solucao.tex index 8390f20..a222e2d 100644 --- a/Documentation/abntex2ime/solucao.tex +++ b/Documentation/abntex2ime/solucao.tex @@ -14,7 +14,7 @@ \begin{figure}[!ht] \centering - \includegraphics[width=0.5\textwidth]{img/placeholder.png} + \includegraphics[width=0.75\textwidth]{img/BluePill.jpg} \caption{Placa \textit{BluePill} com STM32F103C8T6} \label{fig:BluePill} \end{figure} @@ -61,7 +61,7 @@ ADCs & 2 (10 canais) \begin{figure}[!ht] \centering - \includegraphics[width=\textwidth]{img/placeholder.png} + \includegraphics[width=\textwidth]{img/STM32Cube.png} \caption{Interface do STM32Cube} \label{fig:STM32Cube} \end{figure} @@ -196,4 +196,5 @@ ADCs & 2 (10 canais) \section{Identificação do deslizamento} \par Tendo o robô com controlador PID calibrado, o primeiro passo para resolver os problemas de deslizamento é identificar as condições que levam a deslizamento. Após extensas observações, foi decidido utilizar uma verificação comparando-se a aceleração das rodas, medida pela segunda derivada da posição dos encoders, com a aceleração do chassi do robô, medida pelo sensor acelerômetro do IMU. Sendo assim, considera-se que há deslizamento quando a diferença entre as acelerações é maior do que um certo valor limite. Caso o deslizamento seja identificado, podem ser adotadas as medidas corretivas. -\section{Correção do deslizamento} \ No newline at end of file +\section{Correção do deslizamento} +\par A solução corretiva adotada foi desabilitar o motor nos casos de deslizamento. Desabilitando o motor, seu torque será zerado e, portanto, o único torque aplicado sobre a roda será aquele realizado pela força de atrito. Assim, a roda voltará a ter aderência com o chão e o deslizamento será corrigido. \ No newline at end of file