ROS

Instalação ROS Kinetic

ROS kinetic Kame

Robot Operating System

ROS : Robotic Operating System.

Esta série de posts sobre o ROS será baseada na documentação oficial da página ros.org. Estou aprendendo ROS e documentando os principais tópicos a medida que der tempo for estudando um por um. Existem vários caminhos e formas de instalar e trabalhar com o ROS, aqui está uma delas =).

Se você ainda não sabe o que é ROS… dê uma olhada em http://www.ros.org/about-ros/

Abaixo está detalhada a configuração UBUNTU 16.04 LTS (Xenial) em conjunto com a versão do ROS (kinetic kame). OBS: Kinetic Kame funciona apenas com Ubuntu Wily (15.10) ou Ubuntu Xenial (16.04). É aconselhado usar versões LTS do ROS.  Usar máquina virtual dentro do Windows é aconselhado mas se for usar o “Microsoft Kinect” podem ocorrer problemas de comunicação na porta USB.


  1. Baixar ISO do UBUNTU 16.04
  2. Se for criar Máquina virtual no Windows existe o programa “Virtual Box” da Oracle que é gratuito.  Baixar, instalar, criar maquina virtual e apontar para ISO do Ubuntu que acabou de baixar.
  3. Opcional: Usar modo Bridge na opção de Rede no Virtual Box para a máquina virtual estar na mesma faixa de IP que o seu computador.

Considerando que você já instalou tudo e que para iniciar o processo você já deve estar no Ubuntu…Clique no botão de inicio do Ubuntu e Abra o “Terminal”(é só digitar ter no botão de início do Ubuntu) e siga os passos a seguir.

DICA: “control+V” não funciona no terminal. você pode usar “shift+control+v” ou pressionar o botão do meio(a rodinha) do mouse para poder colar o texto.

DICA 2: Podem acontecer erros se o seu Ubuntu não estiver atualizado. Busque “atualizador de Programas” na pesquisa do sistema. E atualize o sistema antes de tentar instalar o ROS.

DICA 3: cuidado ao copiar e colar comando que contenham aspas simples ou duplas pois existem mais de um tipo de aspas simples… leia mais em corrigindo aspas simples e duplas.


1. Incluir na sua lista de repositórios de pacotes da instalação do Ubuntu o “packages.ros.org”:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 

2. Instalar uma chave de acesso e autenticação para o ros.org

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 

3. Agora vamos atualizar a lista de pacotes disponíveis:

sudo apt-get update 

4. Agora vamos instalar o ROS completo (ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception). Existem várias maneiras de instalar apenas os recursos que você quer, mas não faz parte deste tutorial.

sudo apt-get install ros-kinetic-desktop-full 

5. Antes de usar o ROS temos de inicializar o ROSDEP. Ele vai servir para instalar dependências de códigos necessários para compilação de alguns códigos do próprio núcleo do ROS.

sudo rosdep init 

Depois atualize o rosdep:

rosdep update 

6. Agora vamos adicionar as variáveis de ambiente no shell para que toda vez que você abrir o terminal ele reconheça os comandos do ROS.

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc 

Depois:

source ~/.bashrc 

7. Instalar o ROSINSTALL. Ele é uma ferramenta de linha de comando para baixar facilmente muitas árvores de códigos fonte para pacotes ROS com apenas um comando. Recomendado instalar.

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

8. Criar uma pasta para ser o seu “Workspace” (Área de trabalho) do ROS, onde ficarão os seus projetos e códigos de testes.  Executar o comando abaixo no terminal criará uma pasta dentro do seu HOME com nome “catkin_ws” e dentro dela “src”:

mkdir -p ~/catkin_ws/src

Depois vamos navegar até a pasta do Workspace:

cd catkin_ws

E finalmente executaremos o comando make do catkin para configurar todo seu workspace com pastas ex.:  “build”, “source”…

catkin_make

9. Agora vamos tornar padrão o novo workspace (catkin_ws) e também para não ter que executar toda vez que abrir um terminal o comando de source para seu home do catkin… vamos adiciona-lo ao bashrc para ficar como padrão. Complete o comando abaixo com seu nome de usuário do Ubuntu ( aparece no terminal como  usuario@suaMaquina: ), assim, onde tem xxxxx apague e insira seu nome de usuario:

echo "source /home/xxxxx/catkin_ws/devel/setup.bash" >> ~/.bashrc

Depois:

source ~/.bashrc

10. Para testar use o comando abaixo. Deverá aparecer como resposta “/home/xxxxx/catkin_ws/src:/opt/ros/kinetic/share”.

echo $ROS_PACKAGE_PATH

DICA: Outra maneira de testar é fechar os terminais e abrir um e digitar roscd que deve levar você para sua pasta de workspace “catkin_ws/devel”.

Finalmente… a instalação terminou. Agora vamos para opcionais.


Pós instalação

Alguns programas podem ser úteis:

  • O XDOTOOL permite ter várias abas no terminal através de shift+ctrl+t. Para instalar:
sudo apt-get install xdotool
  • Um editor leve e prático, principalmente se você usa máquina virtual, é o Visual Studio Code. Baixe a versão “.deb” já que você está usando Ubuntu e instale.

DICA: Se você é iniciante no terminal do Linux… é interessante dar uma olhada nesse Guia Rápido de comandos

Lembretes finais:

  • O ROS está instalado na pasta “opt/ros/kinetic”
  • o workspace é onde se encontram o “setup.bash” e “setup.h” e por padrão ficam em “opt/ros/kinetic”. Durante a instalação acima criamos o workspace chamado “catkin_ws” e configuramos para ser o padrão. O novo “setup.bash” agora está em “catkin_ws/devel”
  • Os “packages” são os projetos individuais que ficam dentro do workspace, mais precisamente, dentro de “catkin_ws/src”
  • Para criar um projeto de nome “projeto1” e já com suporte às mensagens padrão do ROS, python e C++, vá para pasta “catkin_ws/src” e execute:
catkin_create_pkg projeto1 std_msgs rospy roscpp
cd ..
catkin_make
  • O projeto estará criado e compilado em “catkin_ws/src/projeto1”
  • Dentro de projeto1 existe a pasta “src” onde ficarão os códigos fonte de seu projeto. Também dentro da pasta do projeto1 exite a pasta “include”, onde ficarão as bibliotecas que você precisar adicionar.
  • Após criar os códigos fonte dentro de “src” é necessário adicionar ao “CMakeLists.txt” a informação que eles existem e como devem ser compilados. Para um nó de nome “node1”, e um programa de nome “publisher1.cpp”, adicionar:
add_executable(node1 scr/publisher1.cpp)
target_link_libraries (node1 ${catkin_LIBRARIES})
  • Agora voltar para o workspace e executar o catkin_make.
  • Para rodar um “nó” será usado o comando “rosrun” seguido do nome do “package” e seguido do nome do “nó”
  • Dica: apertar “TAB” duas vezes seguidas após digitar o nome do “package” vai listar o nome de todos os possíveis executáveis do pacote.
  • para visualizar os nós e suas relações com os tópicos de forma gráfica, existe o rqt_graph:
rosrun rqt_graph rqt_graph

Tutoriais

P. Fankhauser, D. Jud, M. Wermelinger, M. Hutter, “Programming for Robotics – Introduction to ROS”, ETH Zurich, 2017. DOI: 10.13140/RG.2.2.14140.44161

Pode ser encontrado em http://robohub.org/programming-for-robotics-introduction-to-ros/

Esse curso é muito bom. Porém algumas partes não funcionam pois eles utilizam o ROS Indigo com o robô Husky que ainda não foi portado para o ROS Kinetic :(. Mas o restante das explicações são excelentes. Abordam os seguintes tópicos:

    • ROS architecture: Master nodes, topics, messages, services, parameters and actions
    • Console commands: Navigating and analyzing the ROS system and the catkin workspace
    • Creating ROS packages: Structure, launch-files, and best practices
    • ROS C++ client library (roscpp): Creating your own ROS C++ programs
    • Simulating with ROS: Gazebo simulator, robot models (URDF) and simulation environments (SDF)
    • Working with visualizations (RViz) and user interface tools (rqt)
  • Inside ROS: TF transformation system, time, bags

Aula 1:

Aula 2:

Aula 3:

Aula 4:


2 Comments

  1. Rafael Santos Mercês

    Estou usando o ubuntu 20.04 do windows e nao consigo obter as chaves, diz que nao foi possivel acessar o servidor. ja tentei por aqui e pelo wiki ros e nao consigo. vc pode me ajudar?