-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Q-Learning para otimizar o PID. #53
Comments
Como não existem muitos artigos testando o Reinforcement Learning, é difícil definir quais os parâmetros ideias para o funcionamento do algoritmo, considerando que não podemos deixar o robô rodando por um tempo indeterminado. Por causa disso, seria ideal testar o algoritmo primeiramente em uma simulação. Eu encontrei uma simulação de um robô segue-linha no programa Webots, além de um framework próprio do programa para Q-Learning. Também é possível transferir um modelo 3D próprio ao programa, mas só encontrei como importar modelos do TinkerCAD por enquanto. Diferente do CoppeliaSim, nesse programa parece ser mais fácil importar uma pista, se ela também for montada no TinkerCAD. Fontes do modelo e das bibliotecas:
|
Fase 1 - Construção do Algoritmo de Reinforcement Learning (RL)Começei a desenvolver o modelo de R utilizando alguns papers de referência, especificamente o modelo soft actor-critic que é um modelo de otimização de política estocástica do tipo off-policy utilizando uma dupla função Q incorporado com redes neurais profundas em estágios denominados ator e crítico. Como estou me baseando nas informações dos paper, possivelmente falta ainda alguma implementação das equações que eles mostram, então o código que escrevi está ainda em estágio básico, não considerei ainda a parte de comunicação com robô e com relação a possibilidade de escrever-lo com C++, seria necessário utilizar o tensorflowlite, porém acho q a parte de treinamento em real-time não seja efetivo, já rodar na própria ESP é algo computacionalmente custoso, no paper eles utilizam um NVIDA Jetson para isso. Por ser um esboço não criei a branch aqui, mas deixei em um repositório pessoal público para vcs conseguirem ver e modificarem algo se achar necessário, o link é esse abaixo: Descrição do ModeloNessa área de aprendizado por reforço muitos nomes são recorrentes para os mais diversos tipos de modelos, então acho que seria interessante resumir um pouco esses termos para facilitar a inserção de alguém interessado neste projeto e também justificar minha escolha pelo modelo que disse anteriormente.
A sua estrutura baseia-se em três estágios com funções específicas:
Dúvidas
Referências
|
Fase 2 - Simulação do Seguidor de Linha com PID Adaptativo
Planejamento
|
Criar um algoritmo que otimiza um PID relativamente bom já determinado:
The text was updated successfully, but these errors were encountered: