Neste artigo, vamos abordar sobre uma introdução básica ao sistema de programação e operação mais utilizado do mundo no processo de desenvolvimento de robôs. Iremos apresentar os seus conceitos e características fundamentais para poder entender o seu funcionamento e aplicação.
O Robot Operating System é um grupo de bibliotecas de software e ferramentas que servem para a construção e programação de robôs. Dentro dele, existem diversos drivers, algoritmos e ferramentas de desenvolvimento práticas à área da robótica. O ROS foi criado para ser utilizado em sistemas baseados na plataforma Unix. Porém, com a sua disseminação, é possível utilizá-lo em outras plataformas com apenas algumas configurações e comportamentos diferentes.
O ROS é baseado na dinâmica de nós. Estes são, em sua essência, arquivos executáveis dentro do ROS package, que se comunicam através de tópicos. Os nós podem publicar (publisher) ou se inscrever (subscriber) em um tópico. Publishers são responsáveis por publicar as mensagens e subscribers são aqueles autorizados a acessarem-nas. Ressaltando que, dentro de um tópico, só pode haver um publisher, mas infinitos subscribers.
O workspace é um diretório dentro do ROS que serve como um ambiente do projeto. Para um determinado sistema, todos seus códigos devem estar neste workspace.
Os ROS packages se encontram dentro da pasta src (source) do workspace do projeto. Estes são definidos como uma coleção de recursos construídos e distribuídos em conjunto. Em cada package, deve existir uma pasta src (source), que conterá todos os nós do mesmo. Cada diretório de pacote deve incluir um CMakeLists.txt e um arquivo package.xml, que descreve o conteúdo do pacote e como o catkin deve interagir com ele. O package.xml contém vários metadados sobre o novo package, como nome, versão, criador, descrição e licenças.
É um conjunto de nós e programas que servem de pré-requisito para o funcionamento do ROS. A existência de um ROScore em execução é imprescindível para que o sistema funcione. O ROScore é responsável por promover a conexão de informação entre os nós para que eles possam transmitir mensagens um ao outro. Cada nó se conecta ao ROScore em sua inicialização para registrar detalhes dos fluxos de mensagens que publica e os fluxos aos quais deseja se inscrever, além de informar quais mensagens ele irá mandar e quais ele quer ler.
Os tópicos são a forma básica de comunicação dos nós. É através deles que os programas poderão enviar e receber mensagens uns aos outros. Eles utilizam o mecanismo de publisher/subscriber, definido como uma dinâmica que possui um programa servindo como publisher, que publica as mensagens no tópico, e diversos programas na função de subscriber, que recebem essas mensagens e seus dados relacionados. Na sua implementação, o publisher e subscriber devem ter seus tipos de mensagens pré-definidos e em concordância para que a comunicação possa acontecer.
Com isso, os aspectos do ROS foram apresentados e o seu funcionamento introduzido. A programação de tópicos e nós será desenvolvida em outros artigos.
Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!