Skip to content

"ROS Graph" messages to describe an entire ROS application #182

@emersonknapp

Description

@emersonknapp

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions