-
Notifications
You must be signed in to change notification settings - Fork 58
Description
Description
Proposal for discussion and consideration:
Add here to the core a set of messages that can describe a running ROS graph in full (or as full as possible).
This is approximately:
# Graph
Node[] nodes
# Node
string fully_qualified_name
rcl_interfaces/ParameterDescriptor[] parameters
rcl_interfaces/ParameterValue[] parameter_values
Topic[] publishers
Topic[] subscriptions
Service[] clients
Service[] servers
Action[] action_clients
Action[] action_servers
# Topic
string name
string type
QosProfile qos
# etc...
Motivation
Having a common data representation for the ROS Graph is a key part of toplevel health monitoring, which allows us and run analyses on an individual graph for connectivity and compatibility, etc, or to set an "expected observed graph" and diff running or recorded graphs against those expectations.
Design / Implementation Considerations
Consider all the aspects that entities within the graph can have. We have not yet actually considered services or actions, but they shouldn't be much extra information.
Type hashes would be a valuable addition to topics, starting in Jazzy, though I want to add these messages to all live distros (meaning Humble, too). Possible the full Type Description would be desired.
Additional Information
We currently have this implemented at https://github.com/ros-tooling/graph-monitor/tree/main/rosgraph_monitor_msgs/msg, but think it makes a lot of sense as a core concept, that the graph monitoring library can produce.