Em muitos projetos de automação, principalmente no caso de veículos autônomos, tal qual o AUV (Autonomous Underwater Vehicle) que desenvolvemos, a realização de testes usando o equipamento em si nem sempre é uma opção viável. Muitas vezes, tais procedimentos necessitam de muito tempo, um local com infraestrutura adequada e a disponibilidade de um grande contingente de pessoas, podendo resultar em altos custos. Dessa maneira, as ferramentas de simulação virtual se mostram como uma solução muito poderosa no desenvolvimento de quase qualquer projeto de engenharia contemporâneo. Sob essa ótica, ao decorrer deste artigo, faremos uma breve apresentação de uma dessas ferramentas: o Gazebo.
O Gazebo é uma ferramenta de simulação, utilizada principalmente no setor de robótica, tendo como seu principal atrativo os cálculos de física e imagem em tempo real. Ademais, o programa possui ampla conectividade, permitindo a simulação de, principalmente, sistemas baseados em ROS, que é profundamente integrado no ecossistema do Gazebo. A combinação desses fatores faz com que a plataforma seja ideal para o desenvolvimento e teste de algoritmos.
Para adicionar ao realismo que esses testes proporcionam, é possível estender as funcionalidades da simulação com o uso de plugins. Muitas vezes, esses podem ser usados para simular o comportamento de um sensor específico, podendo adaptá-lo para que o software a ser testado não possa distinguir a simulação da realidade, evitando assim a necessidade de adaptar seu funcionamento.
Quanto ao seu emprego em nossa equipe, o Gazebo é frequentemente usado para testar a máquina de estados de nosso AUV, podendo simular seu comportamento sem a necessidade de que a o veículo seja testado em uma piscina física. Assim, podemos realizar o desenvolvimento do componente de software do projeto de maneira interativa, construindo novos algoritmos, testando-os e modificando-os com a necessidade sem sequer precisar ligar o submarino.
Além disso, o Gazebo também é utilizado na indústria para diversas aplicações de machine learning, sendo particularmente útil para treinar algoritmos de aprendizado por reforço. Isso ocorre pois a máquina pode facilmente interagir com o ambiente simulado, onde podem ser implementados diversos sistemas de pontuação, incentivos e punições, dando possibilidades quases infinitas à ferramenta nesse tipo de aplicação.
Outro ponto positivo é que, visto que a comunicação com o Gazebo acontece através de portas de rede, sejam essas virtuais ou físicas, ele é muito flexível. Na prática, essa ferramenta pode ser utilizada para praticamente qualquer aplicação, seja ela autônoma ou manualmente operada, consistindo de uma máquina ou várias, usando ROS ou não. Ademais, devido a sua grande comunidade, já existe uma grande variedade de conteúdo pronto construído para diversas aplicações que pode ser facilmente encontrado na internet. A combinação desses fatores acabam fazendo da acessibilidade e flexibilidade os maiores pontos positivos da plataforma, justificando seu emprego dentro da Nautilus, e, quem sabe em um futuro projeto seu?
Escrito por Lucas Ikuhara