PLATAFORMA ROBÓTICA OMNIDIRECIONAL EM CÓDIGO ABERTO PARA FINS DIDÁTICOS
Resumo
Este trabalho propõe a implementação de uma plataforma robótica omnidirecional, onde todos os códigos, desenhos técnicos e documentação necessária para sua reprodução serão disponibilizados, com licença aberta, em uma plataforma de acesso livre. Este projeto se destaca por prover vários métodos de controle de trajetória disponíveis através de comandos, provendo uma solução pronta no quesito locomoção. O modelo cinemático da plataforma é utilizado para definir a atuação das rodas e para gerar o posicionamento através da odometria, que conta somente com o uso de encoders, ficando a cargo de quem expandirá o projeto utilizar modelos e sensores mais sofisticados. O objetivo geral deste trabalho é promover a pesquisa na área da robótica e incentivar a formação de pesquisadores através da livre disponibilidade de soluções prontas, que neste caso é uma plataforma robótica omnidirecional. Os objetivos da plataforma são facilitar o desenvolvimento de robôs mais complexos, através do fornecimento de uma solução de movimentação pronta e facilitar o desenvolvimento de melhores soluções de movimentação, através do fornecimento de uma solução prontamente expansível. Inicialmente, o projeto está sendo testado em um ambiente simulado, provido pela ferramenta livre Gazebo. Os roletes das rodas são entidades independentes das rodas e se comportam como tal. As partes foram modeladas com a ferramenta SOLIDWORKS e possuem dimensão, massa e momentos de inércia realistas. O modelo da roda foi adaptado do modelo fornecido pelo construtor e a estrutura da plataforma é uma peça fictícia, de alumínio, usada exclusivamente para suportar as rodas e prover um pouco de massa ao modelo. Como haverão fatores na vida real que não poderão ser simulados com fidelidade, a simulação serve exclusivamente para testar a matemática e a lógica do controle. O código foi desenvolvido com a intenção de ter o seu desempenho otimizado o máximo possível. Assim, foram utilizadas diretivas “#define” ao invés de métodos, para evitar o overhead de troca de contexto; as variáveis são mantidas no escopo global para evitar operações de referenciação; as equações foram quebradas em partes que pudessem ser calculadas uma vez e reutilizadas várias vezes; etc. O código, quando pronto, passará por uma limpeza para manter um nível aceitável de modularização, para garantir uma certa facilidade de entendimento e expansão. Alguns movimentos pequenos resultaram em erros para x de 1 a 5 mm, e para y de 0 a 40 mm. Dependendo da aplicação, essa precisão pode ser considerada aceitável, dado que foi obtida somente com a odometria baseada na velocidade das rodas e sem o controlador PID, que ainda não foi implementado. A execução do código do controle demora ~15 µs, enquanto que ele é executado a cada 1 ms. Esse desempenho é aceitável e, facilmente, permite a inserção de controle mais complexo. Até então, foi possível concluir que a odometria possui precisão suficiente para realizar algumas tarefas sem a necessidade de sensores adicionais. Também foi possível confirmar a facilidade em alterar o comportamento da plataforma no ambiente simulado, o que deve se refletir no protótipo real. Além disso, o desempenho dos cálculos do controlador se mostrou satisfatório.
Apontamentos
- Não há apontamentos.