Novos redatores

Introdução ao Robot Operating System (ROS)

Eletrogate 31 de maio de 2022

Introdução

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.

braço robótico

Robô industrial, braço robótico


O que é

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.


Características

  • Peer to Peer (Ponto a Ponto): Um sistema ROS é formado por diversos pequenos programas que se conectam e se comunicam através de mensagens.
  • Tools-based (Baseado em ferramentas): É composto por diversas ferramentas, que podem ser criadas, alteradas, melhoradas e compartilhadas.
  • Multilinguagem: Possui a capacidade de desenvolver em diversas linguagens. Existem diversos ambientes, módulos e bibliotecas para cada tipo de programação. Dentre as linguagens, temos: C + +, Python, LISP, Java, JavaScript, MATLAB, Ruby, Haskell, R, Julia, e outros.
  • Compacto: Permite o reuso de códigos, o que encoraja os contribuidores a criar bibliotecas úteis para o desenvolvimento.
  • Grátis e Open Source: É um software que pode ser encontrado gratuitamente e possui licença BSD, que permite uso comercial e não comercial.

Funcionamento

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.


Workspace (Área de trabalho)

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.


ROS Packages

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.

Sistema de arquivos do ROS

Sistema de arquivos do ROS


ROScore (Node Master)

É 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.

Funcionamento do roscore

Funcionamento do ROScore


Tópicos (Topics)

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.

funcionamento publisher/subscriber

Processo de comunicação de nós através de publisher/subscriber


Por Fim

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.


Referências

  • http://wiki.ros.org/
  • Morgan Quigley, Brian Gerkey & William D. Smart.  “Programming Robots with ROS, A pratical introduction to the robot operating system”. O’reilly, 2016.

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


Caio Teraoka

Estudante de engenharia elétrica e entusiasta na área da robótica e microcontroladores.


Eletrogate

31 de maio de 2022

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.

Os comentários estão desativados.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!