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 18.04 LTS (Bionic Beaver) em conjunto com a versão do ROS (Melodic Morenia). OBS: Melodic Morenia funciona apenas com Ubuntu Bionic Beaver (18.04) e com Artful (17.10). É 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 18.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://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3. Agora vamos atualizar a lista de pacotes disponíveis:
sudo apt 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 install ros-melodic-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/melodic/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/melodic/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.
Lembretes finais:
Algumas dicas e programas úteis:
- 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. Existe uma extensão chamada “ROS”, instale e o intellisense vai funcionar bem.
- O terminal do Ubuntu permite ter várias abas através de shift+ctrl+t.
- DICA: Se você é iniciante no terminal do Linux… é interessante dar uma olhada nesse Guia Rápido de comandos
- 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
Então… é só =)