Resumo |
Na robótica, a complexidade inerente à programação constitui uma barreira significativa para iniciantes e entusiastas. Em resposta a esse desafio, as plataformas de programação baseadas em blocos surgiram como uma alternativa promissora, oferecendo interfaces intuitivas que abstraem a necessidade de conhecimento avançado em sintaxe. Embora ferramentas como o Scratch sejam amplamente utilizadas na educação para introduzir conceitos de lógica, elas possuem limitações na integração com sistemas robóticos complexos, como o Robot Operating System (ROS). Este trabalho detalha o desenvolvimento de uma plataforma integrada que une a flexibilidade do Blockly com a interoperabilidade do ROS para facilitar o sensoriamento, a atuação e o controle de robôs móveis. A escolha do Blockly foi motivada por sua capacidade de integração e compatibilidade com diversas arquiteturas de controle e com a personalização para diferentes níveis de competência do usuário. A arquitetura da solução é fundamentada em três componentes principais: frontend, backend e o middleware ROS. O frontend, desenvolvido com a biblioteca Blockly, proporciona uma experiência de usuário intuitiva para a construção de programas. Foram criados blocos customizados, como "Mover para Frente" e "Girar", utilizando a ferramenta Block Factory do Blockly, que geram código JavaScript. Este código é então convertido para o formato JSON e enviado ao backend por meio de requisições HTTP. O backend, implementado em Python com o framework Flask, é responsável por processar essas requisições, validar os dados e traduzir os comandos recebidos em ações apropriadas no ROS. Funções específicas como move_forward(distance) e turn(angle) publicam mensagens nos tópicos ROS que controlam o robô. A comunicação com o robô físico, um Pioneer 3DX, é gerenciada pelo ROS, que utiliza o tópico /RosAria/cmd_vel para receber comandos de velocidade e o tópico /RosAria/pose para fornecer feedback de odometria, incluindo posição e orientação. Um módulo de normalização de ângulos foi implementado para garantir a precisão rotacional. A validação experimental foi conduzida em um ambiente controlado, onde o robô foi programado para desenhar três figuras geométricas distintas: um quadrado, um triângulo equilátero e uma lemniscata. Essas atividades foram projetadas para demonstrar não apenas a precisão e navegabilidade, mas também seu potencial educacional para o ensino interativo de conceitos de geometria plana. A análise dos gráficos de trajetória confirmou a eficácia do sistema em seguir as rotas desejadas. Os resultados positivos atestam que a integração Blockly-ROS é uma abordagem integradora, capaz de criar um ambiente de programação acessível e modular. Os próximos passos para o aprimoramento da plataforma incluem a implementação de controles de orientação para otimizar os giros, a integração com ROS 2, a expansão do conjunto de blocos com laços condicionais e a inclusão de módulos de interação humano-robô. |