rosgraph_monitor
Monitors the ROS graph to detect error conditions
README
Rosgraph Monitor
Provides a C++ class RosgraphMonitor, which uses a node’s NodeGraphInterface and subscribes to /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:
Missing Nodes (nodes that were present and are now missing)
Discontinuities in graph (publishers or subscriptions that have no counterparts)
Data flow issues (topics not publishing at promised rate)
/topic_statisticsrequired for this. Seermw_stats_shimfor how those are produced
This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.
Topic Statistics Diagnostics
To set expectations for Topic Statistics Diagnostics, you must:
Set the
DeadlineQoS policy on PublishersNothing else. You don’t need to set it on Subscriptions, or register
DeadlineMissedcallbacks. Just state your periodic promise via Deadline QoS.
Configuration
See params_decl.yaml for the full parameters for the rosgraph_monitor Node.
These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration in monitor.hpp, for those using the class directly instead of in the wrapping Node.
Usage
ros2 run rosgraph_monitor rosgraph_monitor_node