Instalando Pacotes no ROS

From VeRLab Wiki
Revision as of 20:17, 31 August 2018 by Vitormgb (talk | contribs) (Fazendo download e instalando o pacote)
Jump to: navigation, search

Introdução a pacotes no ROS

Uma das vantagens de se trabalhar com o ROS é a existência de uma comunidade ativa e disposta a compartilhar o trabalho desenvolvido. Esses trabalhos são muitas vezes condensados em pacotes, que possuem diversas aplicações diferentes e implementam técnicas e ou estrutura de dados que são essenciais para tarefas que podem ser realizadas como navegação, mapeamento, etc..

Devida a grande quantidade de pacotes que são desenvolvidos, muitos deles não são sincronizados imediatamente com o core de uma versão, sendo muitas vezes necessária a instalação dos mesmos de forma manual. Essa seção tem como objetivo ensinar como realizar a instalação de pacotes de forma manual.

Identificando um Pacote

ROS Melodic Morenia

Todos os pacotes existentes para o ROS em sua versão Melodic Morenia são encontrados nessa página.

Demais Versões

Para demais versões do ROS (Kinetic, Lunar, etc.), os pacotes são encontrados em diferentes páginas. Nesse link estão dispostas todas as páginas com os pacotes para cada versão. O padrão para uma página que descreve os pacotes disponíveis para uma determinada versão é nome_da_versão_default.html. Por exemplo, acessando o link anterior e navegando até o link kinetic_default.html mostrará todos os pacotes existentes para a versão ROS Kinetic. É extremamente importante notar que muitos pacotes são comuns a várias versões do ROS, mas sua compatibilidade não é garantida. Sempre instale pacotes feitos para a sua versão do ROS.

Status de um Pacote e Disponibilidade

O status de um pacote é outro fator de extrema importância. Antes de instalar qualquer pacote, verifique se o mesmo é compatível com:

  • Sua versão do ROS.
  • Seu sistema operacional.

Na página dos pacotes do ROS Melodic Morenia as colunas estão dispostas da esquerda para a direita com:

  • O nome do pacote.
  • A versão do pacote.
  • As nove distribuições de diferentes sistemas operacionais que atualmente são capazes de executar o ROS.

Para muitos pacotes, o mesmo já está disponível em uma plataforma mas ainda não em outra, por isso é importante saber se o pacote é compatível com a sua plataforma.

Os indicadores de Status e Disponibilidade

Ao avaliar cada coluna referente a um sistema operacional, percebe-se que a mesma possuí três quadrados que são usados como indicadores de status e disponibilidade de um pacote. Cada cor tem um significado, bem como a posição de cada um dos três quadrados.

Posições

As posições indicam o status de um pacote. Da esquerda para a direita, temos:

  • Primeiro Quadrado (Building): Indica que o pacote está ou não em construção para a versão do ROS naquele sistema operacional.
  • Segundo Quadrado (Testing): Indica que o pacote já foi construído e está em processo de testes para integrar a versão principal.
  • Terceiro Quadrado (Main): Indica se o pacote está disponível ou não na versão principal (core) daquela versão do ROS. Pacotes que estão disponíveis na versão principal podem ser instalados diretamente por linha de comando, ou acompanhar uma atualização automática do sistema.

Cores

As cores indicam a disponibilidade de um pacote.

  • Verde (Same Version): Pacotes que estão disponíveis para aquela versão do ROS. A cor verde indica a progressão de um pacote, onde para cada um dos três quadrados a cor verde indica que aquela fase já foi concluída.
  • Azul (Lower Version): Pacotes que estão disponível mas são baseados em versões antigas do ROS. Podem apresentar mau funcionamento.
  • Laranja (Higher Version): Pacotes indisponíveis para a versão atual do ROS, mas presentes em versões mais atuais. Podem apresentar mau funcionamento.
  • Vermelho (Missing): Pacotes indisponíveis para a versão atual ou qualquer outra versão. Em geral são pacotes que não receberam atualizações ou manutenção e por isso foram retirados do ROS.
  • Amarelo (Obsolete): Pacotes obsoletos. Novas funcionalidades estão disponíveis fazendo com que o uso daquele pacote seja inútil.
  • Cinza (Intentionally Missing): Pacotes que foram intencionalmente retirados pela equipe do ROS.

Quando instalar um Pacote

O mais indicado é que se instale pacotes que estejam - no mínimo - com status verde para building e testing. Isso significa que o único passo faltante para aquele pacote integrar o ROS em sua instalação principal é a sincronização com o repositório principal. São pacotes que não irão danificar sua instalação corrente, e já foram testados pela comunidade. O fato de não pertencer ao pacote principal é uma simples questão de tempo, uma vez que realizar uma nova distribuição apenas para integrar um pacote seria tempo perdido.

Instalando um Pacote

Uma vez escolhido um pacote para instalação, mediante as informações previamente dadas, vamos dar início ao processo de instalação do pacote.

Encontrando o Pacote

Infelizmente, o site com o a descrição dos pacotes não redireciona para os mesmos. Em geral, pacotes já estabelecidos pela comunidade possuem uma forte documentação que pode ser encontrada na WikiRos. Para esse exemplo, utilizaremos o pacote navigation que atualmente (31 de Agosto de 2018) já faz parte do pacote principal, mas até a data de 21 de Agosto de 2018 não era parte do mesmo (vide esse link). Lembre-se: dê preferência a instalar pacotes que já passaram pelo processo de build e testing, conferindo na página dos pacotes do ROS Melodic Morenia ou da distribuição que estiver usando.

Antes de propriamente instalar um pacote é extremamente importante ler a descrição do pacote, saber do que ele se trata, e - em alguns casos - visualizar o seu funcionamento. Muitos pacotes já são considerados essenciais, mas por não serem mantidos pela equipe responsável pelo ROS não são imediatamente lançados junto a uma nova versão.

Uma vez encontrado o pacote, mãos à obra!

Fazendo download e instalando o pacote

Juntamente ao link do pacote na WikiRos, busque pelo repositório do mesmo. Em geral os pacotes ficam no GitHub, e na página referente ao pacote o link para o repositório estará logo abaixo o sumário, no item source. Para o pacote navigation, o source dele pode ser encontrado nesse link. Uma vez nesse link, clique na opção Clone or download, e salve o endereço GIT. NÃO É NECESSÁRIO FAZER O DOWNLOAD DO .ZIP, apenas copie o link GIT, conforme mostrado na imagem a seguir:

GitHubNavigation.png

Com o link em mãos, abra um terminal e vá até o seu Workspace. Se você ainda não tem um Workspace pare por aqui e faça o tutorial básico, facilmente encontrado em Introdução ao Robot Operating System (ROS).

Assumindo que você já tenha o Workspace pronto e funcionando, continuaremos o tutorial.

1) Tenha certeza de que o seu workspace já esteja definido como uma das variáveis de ambiente. Caso esteja em dúvida, execute o comando: source devel/setup.bash dentro do seu workspace, conforme mostrado na imagem abaixo:

SourceWorkspace.png

2) Navegue até a pasta src do seu workspace. Isso pode ser facilmente realizado com o comando cd src caso você já esteja na pasta do Workspace.

3) Uma vez na pasta src execute o comando git clone https://github.com/endereco_do_pacote. Para o nosso exemplo, utilizaremos o comando git clone https://github.com/ros-planning/navigation.git para obter o pacote navigation. Aguarde até que o pacote seja baixado conforme a imagem abaixo:

RosPackageCloneGit.png

4) Volte para a pasta central do seu workspace. Você pode fazer isso simplesmente digitando cd .. no seu terminal, ou cd ~/seu_workspace

5) Execute os comandos:

  • rosdep update
  • rosdep install --from-paths src/ --ignore-src --rosdistro melodic

O primeiro comando mantem a base de dados do ROS atualizada conforme novos updates forem surgindo e estiverem já prontos na versão main. O segundo comando instala o pacote que você baixou no passo 3. É altamente provável que durante esse processo você precise de permissões de administrador para a sua execução e confirmação de instalação de pacotes que são dependência do pacote baixado. Ao fim do processo, se tudo deu certo, algo parecido com a imagem a seguir deve aparecer em seu terminal:

RosPackageInstalled.png

6) Para concluir a instalação do pacote, vamos recompilar o workspace. Para isso, execute o comando catkin_make no seu workspace. Esse processo pode demorar um pouco caso muitos pacotes estejam prontos para integrar o ROS e apenas aguardando para recompilar. Ao final do processo, algo parecido com a imagem a seguir deve aparecer em seu terminal:

RosPackageInstallFinal.png

Pronto! O seu novo pacote está instalado e você já pode usar as funcionalidades dele.