domingo, 6 de novembro de 2011

Controle e Simulação de Robôs Móveis

Ontem realizei uma palestra sobre Controle de Robôs Móveis para duas turmas de pós-graduação em Engenharia de Controle e Instrumentação da Faculdade UCL. Falei um pouco sobre algumas características dos robôs móveis, como configuração mecânica, sensores utilizados, modelagem matemática e estratégias de controle.

O foco da apresentação foi na parte de modelagem e controle de movimentação dos robôs, especificamente de robôs móveis tipo uniciclo. Os robôs de tipo uniciclo são aqueles que possuem duas rodas de tração (uma de cada lado), acionadas por motores independentes (differential drive). Uma terceira roda "louca" é colocada apenas para dar equilíbrio à estrutura.

Os modelos e os controladores apresentados foram simulados no ambiente MATLAB/Simulink. Foi construído um sistema com os modelos matemáticos dos robôs e dos controladores, o que permite que diferentes configurações de controle sejam simuladas com distintas trajetórias a serem percorridas pelo robô. O sistema construído considera o modelo dinâmico do robô e possui parâmetros para simular alguns robôs comerciais (como o Pioneer 2 e o Pioneer 3). Ao final, calcula índices de desempenho (IAE, ISE, ITAE e ITSE), além de um índice de energia, que podem ser utilizados como base para comparação de desempenho dos controladores e dos ganhos testados.

Sistema construído em Simulink: controlador de seguimento de trajetória.

 Ao final de cada simulação, gráficos com os resultados podem ser visualizados para facilitar a análise do desempenho de cada controlador. Foram implementados dois controladores: um com base na cinemática do robô de tração diferencial e outro que realiza a compensação de sua dinâmica, inclusive de forma adaptativa. A figura a seguir ilustra o sistema com o controlador adaptativo de compensação da dinâmica.

Controlador de seguimento de trajetória com compensação adaptativa da dinâmica.

Um exemplo de resultado é ilustrado na figura abaixo, onde o robô teve de percorrer uma trajetória em forma de oito. A partir de 50 segundos de simulação, foi ativada a função de adaptação dos parâmetros, que resultou em redução do erro de seguimento de trajetória. A figura mostra a trajetória percorrida e a evolução dos parâmetros estimados ao longo da simulação.

Trajetória percorrida e evolução dos parâmetros estimados para o controlador de compensação da dinâmica.


Os arquivos do sistema completo para simulação em MATLAB/Simulink podem ser obtidos aqui. Eles são descompactados numa pasta chamada “Unicycle”, que deve ser acessada através do MATLAB.

--- editado em 28/12/2013 ---

Criei novos blocos para simulação do robô de tração diferencial que são compatíveis com o Robotics Toolbox. Esses blocos incluem: modelo cinemático, modelo dinâmico de velocidades, controlador de seguimento de trajetória, gerador de trajetórias de referência, compensador adaptativo da dinâmica e calculador de índices de desempenho. Estão disponíveis para download no site da MathWorks.

---

Há dois sistemas previamente construídos: um mais simples (sl_unicyclecontroller.mdl), que simula apenas um controlador cinemático, e outro mais complexo (sl_dynamiccontroller.mdl), que permite simular um controlador adaptativo que compensa a dinâmica do robô.

Para realizar as simulações, basta executar os arquivos unicyclecontroller.m (controlador cinemático) ou dynamiccontroller.m (controlador dinâmico). Tais arquivos contêm um script que inicializa uma série de variáveis e faz a chamada do arquivos .mdl correspondentes. Ao final da simulação eles chamam os arquivos plots.m ou plots_unicycle.m, que são responsáveis por traçar os gráficos com os resultados da simulação.

Você pode realizar simulações com diferentes controladores e comparar seus resultados. Para isso, abra o arquivo unicyclecontroller.m  ou dynamiccontroller.m e, antes de executá-lo, altere os parâmetros contidos no bloco SIMULATION OPTIONS. Veja comentários nos próprios arquivos.

Os slides da apresentação estão disponíveis no SlideShare, e podem ser acessados aqui.

Detalhes sobre o desenvolvimento do modelo, projeto dos controladores e prova de estabilidade (usando a teoria de Lyapunov) podem ser encontrados na minha tese, disponível aqui. Os seguintes artigos também trazem informações sobre o desenvolvimento do modelo dinâmico do robô uniciclo (que é baseado em velocidades) e sobre o projeto dos controladores utilizados:


MARTINS, F. N., Celeste, W. C., Carelli, R., Sarcinelli-Filho, M. and Bastos-Filho, T. F. An Adaptive Dynamic Controller for Autonomous Mobile Robot Trajectory Tracking. Control Engineering Practice, v. 16, p. 1354–1363, 2008.
doi: 10.1016/j.conengprac.2008.03.004

MARTINS, F. N., Carelli, R., Sarcinelli-Filho, M. and Bastos-Filho, T. F. Dynamic Modeling and Adaptive Dynamic Compensation for Unicycle-Like Mobile Robots. 14th International Conference on Advanced Robotics - ICAR 2009, Germany, June, 22-26, 2009.

Espero que possam praticar um pouco no MATLAB!
Até a próxima!

Atualizado em 09/03/2013, 21/07/2013 e 28/12/2013.