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.
- Baixar ISO do UBUNTU 16.04
- 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.
- 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
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?
Almir
Opa, tudo bom? As distribuições ROS são vinculadas as versões do Ubuntu. Se você quer instalar ROS no Ubuntu 20.04 necessariamente precisa ser a versão “ROS Noetic Ninjemys”. O guia de instalação fica em http://wiki.ros.org/noetic/Installation/Ubuntu. Caso queira instalar o ROS Kinetic… vai precisar de Ubuntu 16.04. Essa lista de compatibilidade acha em http://wiki.ros.org/Distributions.