天天看点

ROS机器人程序设计(原书第2版)3.6 可视化节点诊断

<b>3.6 可视化节点诊断</b>

ros节点可以使用diagnostics(诊断)主题提供诊断信息,并为此提供了一个api用于以标准方式发布诊断信息。信息遵循diagnostic_msgs/diagnositcstatus的消息类型,它允许我们指定一个级别(警告、错误)、名称、消息和硬件id以及diagnostic_msgs /keyvalue列表,对应键(key)和值(value)字符串。

有趣的部分是收集诊断信息并将其可视化的工具。在最基本的层面上,rqt_runtime_monitor通过diagnostics主题直接发布可视化信息。运行example7节点,它通过诊断主题发布信息并可以通过可视化工具查看诊断信息:

前面的命令输出如下所示:

当系统很大时,我们可以使用diagnostic_aggregator汇总诊断信息。在diagnostics_agg里处理和归类diagnostics主题的消息并重新发布。这些汇总诊断消息通过rqt_robot_monitor实现可视化。诊断汇总器通过一个配置文件进行配置,例如下面的这一个(参看chapter3_tutorials中的config/diagnostic_aggregator.yaml文件),并使用analyzergroup定义不同的analyzers(分析器):

launch文件已经在之前的代码中使用,并以之前的配置运行诊断节点aggregator_node,如下:

现在,我们可以比较rqt_runtime_monitor与rqt_robot_monitor的可视化,如下图所示。