ROS diagram tools

Hello,

I’ve recently hacked few lines of code allowing me to visualize various aspects of ROS workspace in form of diagrams. The most interesting one is connection diagram of ROS nodes and topics, and sequence diagram of rosbag messages (all interactive).

What do You think about it?

The project can be found here:

1 Like

Thanks for sharing those. Great visualizations help us understand what’s going on better.

A bunch of these capabilities look like they might be good candidates to extend some of the current tools such as rqt_dep, rqt_graph, and rqt_bag

I’d encourage you to consider submitting these as feature enhancements to the existing tools. It would be awesome to see these improvements added to the core tools which will help many more people find and be able to take advantage of your work.

2 Likes

This is great work. ROS bags contain rich timestamped data that can indeed help in the extraction of consistent architectural information.

Look at this repo of us: https://github.com/S2-group/icra-ws-robotics-rosbag

It is part of a research poster we’re going to present at ICRA this year at the Robotic Software Architecture (RSA) Workshop.

are these diagrams visualized from a running system or are there static code analyzers implemented which can extract the connections from source code as well?

At the moment majority of data is gathered from running system (nodes, topics, services etc). Some data is taken from ‘catkin’ and ‘cloc’ commands.
Static analysis of C++ code is doable with support of gcc, but I still haven’t figured out how to extract data from Python code.

1 Like

I found buildtime and rosnodegraph and rosbagflow diagrams to be most useful. The first one is more of catkin tool, because presents build time of packages. Second tool presents connections between nodes and messages definitions of topics and services - it presents broad scope. The last one presents rosbag from different perspective: in form of sequence diagram.
There is one problem with rosbag format: it does not contain information about subscribers, so building sequence graph based only on rosbag file is impossible.