3.6 可视化节点诊断
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的可视化,如下图所示。