<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的可視化,如下圖所示。