初探ros(十三)---错误诊断工具roswtf

roswtf

当你运行一个ROS节点或者启动roscore时,会不时的出现一些问题;这时你就可以使用roswtf这个工具来检查ros中出现的一些错误或者警告

  • 在开始本教程之前,请确保您的roscore没有运行。
ps -ef | grep -i rosmaster

输出:
00:00:00 /usr/bin/python /opt/ros/kinetic/bin/rosmaster 

在Linux上,您可以通过以下方式检查roscore是否仍在运行(如果您看到这样的行,其中包括rosmaster,它是roscore的一部分,则roscore正在运行):

  1. 检查安装

    roswtf检查您的系统以尝试发现问题。让我们尝试一下:

roscd rosmaster
roswtf

输出:
Package: rosmaster
================================================================================
Static checks summary:

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

ROS Master does not appear to be running.
Online graph checks will not be run.
ROS_MASTER_URI is [http://localhost:11311]

如果您的安装运行正确,您应该会看到与上面类似的输出。输出告诉您:

软件包:rosmaster:

roswtf使用当前目录中的任何内容来确定对其进行的检查。此输出告诉我们您在rosmaster软件包目录中启动了roswtf。

静态检查摘要:这是有关任何文件系统或任何非运行时(即无需运行roscore)问题的报告。告诉我们没有错误。 ROS Master似乎没有在运行。:roscore没有在运行。 roswtf没有进行任何在线检查。

  1. 在线检查
  • 我们希望Master能够启动,因此继续并在另一个终端中启动roscore。

终端一:

roscore

终端二:

 roscd
 roswtf
 
 输出:
No package or stack in context
======================================================
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

既然roscore正在运行,roswtf会对您的图形进行一些在线检查。根据运行的ROS节点数,这可能需要很长时间才能完成。如您所见,这次它产生了警告:

roswtf向您警告rosout节点已订阅没有人发布的主题。在这种情况下,这是可以预期的,因为没有其他东西在运行,因此我们可以忽略它。

ERRORS

  • roswtf会警告您一些看起来可疑但在您的系统中可能是正常的事情。它还可以针对已知错误的问题报告错误。

对于这一部分,我们将您的ROS_PACKAGE_PATH设置为错误的值。我们还将停止roscore来简化您看到的输出。

 roscd
 ROS_PACKAGE_PATH=bad:$ROS_PACKAGE_PATH roswtf
 
 输出:
 Stack: ros
======================================================
Static checks summary:

Found 1 error(s).

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

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

Cannot communicate with master, ignoring graph checks

如您所见,roswtf现在为我们提供了有关ROS_PACKAGE_PATH设置的错误。 roswtf可以找到许多其他类型的问题。如果发现自己因构建或通信问题而感到困惑,请尝试运行它,看看它是否可以为您指明正确的方向。

至此, ROS的入门介绍结束了

你可能感兴趣的:(初探ros(十三)---错误诊断工具roswtf)