Skip to content

ktiwari9/ros_network_viz

 
 

Repository files navigation

rqt_network

This is a utility to visualize the state of an entire ROS 2 network in a graphical way. This utility will show all of the nodes in a graph, all of the topics, services, and actions that connect them, as well as some additional metadata about them.

Install

pip install PyQt5 networkx
mkdir -p viz_ws/src
cd viz_ws/src
git clone https://github.com/ros2/ros_network_viz.git
cd ..
colcon build --symlink-install
. install/setup.bash
ros2 run ros_network_viz ros_network_viz

Features

  • Show a legend/help for describing what everything does
  • Allow zooming in or out on the entire scene
  • Have some kind of side panel to show warnings, errors, incompatible QoS, etc.

Nodes

  • Show all nodes in a ROS 2 graph (including those with no topics or services)
  • Automatically update the graph as nodes come and go
  • Have an option to "pause" automatic graph updates
  • Hide hidden nodes by default (with option to turn on)
  • Hide rqt_network node by default (with option to turn on)
  • Show all parameters and initial parameter values on all nodes
  • Update parameters as they change on every node (via /parameter_events)
  • Support parameter updates on nodes that don't have /parameter_events
  • Have an automatic layout of nodes that makes sense
  • Make the nodes draggable so the user can rearrange the layout
  • Show whether a node is a regular Node
  • Show whether a node is a LifecycleNode
  • Show what Lifecycle state a node is in
  • Update Lifecycle states for a node as they change (via /transition_event)
  • Support lifecycle updates on nodes that don't have /transition_events
  • Show if a node is a ComponentNode
  • Show the nodes that are inside of a ComponentNode
  • Have the ability to select one or more nodes and hide them

Topics

  • Show all of the topics that a node publishes
  • Show all of the topics that a node subscribes to
  • Draw a line between the published and subscribed topics in the network
  • Hide default topics like /parameter_events, /rosout by default (with option to turn on)
  • Show the type for each topic
  • Show the Quality-of-Service settings for each topic
  • Show the rate (hz) at which a topic is publishing data
  • Show the bandwidth that a topic is using
  • Have the ability to hide one or more topics on a node
  • Gracefully handle topics with unknown topic types
  • Show the actual data flowing over a topic

Services

  • Show all of the services that a node provides
  • Show all of the services that a node is a client for
  • Draw a line between the clients and services in the network
  • Hide default services like /describe_parameters, /get_parameter_types, /get_parameters, /list_parameters, /set_parameters, /set_parameters_atomically by default (with option to turn on)
  • Show the type for each service
  • Show the Quality-of-Service settings for each service (does this even make sense for a service?)
  • Have the ability to hide one or more services on a node
  • Gracefully handle services with unknown topic types

Actions

  • Show all of the actions that a node provides
  • Show all of the actions that a node is a client for
  • Draw a line between the action clients and action services in the network
  • Show the type for each action
  • Show the Quality-of-Service settings for each action (does this even make sense for an action?)
  • Have the ability to hide one or more actions on a node
  • Gracefully handle actions with unknown topic types

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%