(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Introdução ao roswtf

Description: Introdução à ferramenta roswtf.

Keywords: roswtf

Tutorial Level: BEGINNER

Next Tutorial: Navegando a wiki

Antes de começar esse tutorial, por favor verifique que NÃO há um roscore rodando.

Verificando sua instalação

roswtf examina seu sistema e tenta encontrar problemas. Tente por exemplo:

$ roscd
$ roswtf

Você verá um resultado parecido com:

Stack: ros
================================================================================
Static checks summary:

No errors or warnings
================================================================================

Cannot communicate with master, ignoring graph checks

Se sua instalação rodou corretamente, você deve ver um texto similar ao de cima. O resultado exato varia de acordo com a versão do ROS. Analisando por partes:

  • "Stack: ros": roswtf usa o diretório atual para determinar quais verificações executar. Isso nos diz que o comando foi executado no stack chamado ros.

  • "Static checks summary": aqui são reportados erros no sistema de arquivos. "No errors or warnings" quer dizer que não há erros ou avisos.
  • "Cannot communicate with master, ignoring graph checks": quer dizer que, como o roscore não está rodando, o roswtf não conseguiu se comunicar com o master e portanto não executou nenhuma verificação de conexões.

Verificações durante execução

Agora nós queremos que o Master esteja rodando, então comece a rodar um roscore:

$ roscore

Agora em outro terminal, rode a mesma sequência novamente:

$ roscd
$ roswtf

Você verá algo como:

Stack: ros
================================================================================
Static checks summary:

No errors or warnings
================================================================================
Beginning tests of your ROS graph. These may take awhile...
analyzing graph...
... done analyzing graph
running graph rules...
... done running graph rules

Online checks summary:

Found 1 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING The following node subscriptions are unconnected:
 * /rosout:
   * /rosout

roswtf examinou seu grafo em execução agora que o roscore está rodando. Dependendo de quantos nodes do ROS estejam rodando, isso pode levar um tempo para terminar. No exemplo acima, um aviso foi produzido:

WARNING The following node subscriptions are unconnected:
 * /rosout:
   * /rosout

roswtf está avisando que o nó (node) rosout está subscrito a um tópico (topic) onde nenhum nó está publicando. Nesse caso, isso é esperado porque não tem mais nada rodando, então o aviso pode ser ignorado.

Erros

roswtf vai avisar (warn) sobre coisas que parecem suspeitas mas podem ser normais para o seu sistema. Quando ele diz que algo é um erro, isso significa que há problemas com certeza.

Para demonstrar um error, vamos mudar o ROS_PACKAGE_PATH para um valor ruim. Também vamos parar de rodar o roscore para simplificar o resultado.

$ roscd
$ ROS_PACKAGE_PATH=ruim:$ROS_PACKAGE_PATH roswtf

Desta vez você verá algo como:

Stack: ros
================================================================================
Static checks summary:

Found 1 error(s).

ERROR Not all paths in ROS_PACKAGE_PATH [ruim] point to an existing directory: 
 * ruim

================================================================================

Cannot communicate with master, ignoring graph checks

Como pode ver, o roswtf agora mostra um erro sobre a variável ROS_PACKAGE_PATH. A mensagem diz que nem todos os caminhos na variável apontam para um diretório existente.

O roswtf pode apontar muitos outros tipos de erro. Se você está tendo dificuldades com algum problema de compilação ou comunicação, tente rodar esta ferramenta e ver se ela te ajuda a identificar o problema.

Agora que você já sabe usar o roswtf, aprenda mais sobre como navigar pela wiki.

Wiki: pt_BR/ROS/Tutorials/Getting started with roswtf (last edited 2020-04-18 21:05:26 by MatheusNascimento)