Uma introdução ao Robot Operating System (ROS)

Robot Operating System
Este post faz parte da série ROS (Robot Operating System). Leia também os outros posts da série:

Se você está construindo um robô que possui diferentes módulos, tais como câmera, sensores laser, gps, etc, que precisam se comunicar entre si, você já deve ter pensado se existe uma maneira mais fácil de realizar tal comunicação. A resposta é sim! Para facilitar a comunicação com diferentes módulos você pode utilizar o Robot Operating System ou ROS. Usando o ROS é possível ter toda uma arquitetura de processamento de dados em paralelo para controlar seu robô. Por exemplo, você precisa realizar cálculos pesados de processamento de imagem, mas o PC embarcado do robô não é o suficiente para tal. Você pode resolver esse problema criando um nó ROS em um PC mais poderoso para se comunicar através de TCP/IP com o robô.

 

Nas palavras do próprio pessoal do ROS:

“ROS é um conjunto de bibliotecas e ferramentas que te ajudam na construção de aplicações para robôs. De drivers até algoritmos de última geração e com poderosas ferramentas de desenvolvimento, ROS possui o que você precisa para seu projeto de robótica. E o melhor de tudo: ROS é OpenSource.”

 

ROS possui uma arquiquetura simples. Em uma rede com máquinas rodando ROS, existirá sempre uma máquina conhecida como MESTRE. O mestre deverá sempre estar rodando o comando ROSCORE que irá inicializar todos os serviços necessários para que os nós ROS se comuniquem entre si. Um nó ROS é basicamente um executável. Portanto, é possível ter nós ROS rodando em qualquer uma das máquinas da rede. A comunicação entre os nós é feita através do protocolo TCP/IP. Cada nó pode publicar e subescrever em tópicos. Um tópico funciona como uma variável. Em outras palavras, um nó pode tanto escrever valores nessa variável ou ler os valores dessa variável. Dessa forma que diversos nós podem se comunicar um com o outro.

 

A Figura 1 ilustra a comunicação entre diferentes nós ROS, onde cada elipse representa um nó ROS. Por exemplo, temos que o nó ROS /camera_base_link está enviando dados através do tópico /tf para o nó ROS /camera/camera_nodelet_manager.

 

ROS oferece ferramentas para criação de pacotes em C++ e Python. Cada pacote pode conter um número arbitrário de nós. Faz-se necessário que o usuário tenha conhecimentos básicos em Cmake e terminal Linux. A criação de pacotes será demonstrada em mais detalhes em tutoriais futuros.

 

Ilustração da comunicação entre nós ROS (Robot Operating System)
Figura 1: Ilustração da comunicação entre nós ROS.

 

 

Instalação do ROS (Robot Operating System)

 

Infelizmente, ROS funciona apenas em Linux e OSX. Existe um projeto para portar ROS para Windows, mas já fazem mais de 3 anos que não ocorre nenhuma atualização nesse projeto. Para esse tutorial, pretendo ensinar apenas como fazer a instalação básica do ROS. Estarei utilizando Ubuntu 14.04 de 64-bits e a versão ROS Indigo, última versão estável.

 

Primeiro, é necessário que você adicione os endereços para download dos pacotes do ROS ao APT do seu sistema usando o seguinte comando:

 

 

Depois, configure a chave de criptografia usada pelos pacotes do ROS:

 

 

Atualize seu APT com o seguinte comando:

 

 

Instale a versão completa do ROS Desktop em sua máquina:

 

 

Inicialize o ROSDEP com os seguintes comandos:

 

 

Nota: o ROSDEP é um sistema de dependências que permite o download e a instalação de pacotes ROS que não existam em seu sistema. É sempre recomendado utilizar ROSDEP como usuário comum, nunca utilize como ROOT, pois isso pode danificar sua instalação do ROS.

 

Inicialize as variáveis de ambiente necessárias para utilização do ROS:

 

 

Pronto! Você já baixou e instalou o sistema ROS em sua máquina Linux. Você ganhará mais familiaridade com o ROS ao ler os próximos tutoriais que serão publicados em breve.

 

 

Fontes

 

Website oficial do ROS

Tutorial em inglês sobre a instalação do ROS

Tutorial sobre visualização de nós e tópicos no ROS

Outros artigos da série

Entendendo os nós do ROS >>
Este post faz da série ROS (Robot Operating System). Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

3
Deixe um comentário

avatar
 
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Felipe Souza AmaralFabio LuizJéssica Motta Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Jéssica Motta
Visitante
Jéssica Motta

Muito explicativo, estou trabalhando com o ROS em uma disciplina do Mestrado, seria muito bom se desse continuidade a esse projeto e publicasse mais tutoriais. 😀

Felipe Souza Amaral
Visitante
Felipe Amaral

Excelente ferramenta!!!

Fabio Luiz
Visitante
Fabio Luiz

muito bom , ancioso aguardando os proximos tutoriais