New CLI tool: fastdds_transport_viz — predict & measure per-topic DDS transport in ROS 2

Hi all,

I built fastdds_transport_viz, a CLI tool that shows which transport (UDPv4/v6, TCP, SHM, or zero-copy data-sharing) each ROS 2 topic actually uses — and why.

  • Predicts the transport per writer→reader pair from Fast DDS discovery data (no changes needed on the observed nodes)
  • With --stats, measures real traffic (rate, latency) via the Fast DDS statistics module
  • --watch live view, --json output, and a web viewer (graph/table)
  • Verified on Jazzy and Kilted/Rolling, x86_64/arm64, including a two-host Wi-Fi setup

rmw_fastrtps_cpp only, Linux only — details in the README.

Repo: https://github.com/atinfinity/fastdds_transport_viz
Docs: https://atinfinity.github.io/fastdds_transport_viz

Feedback and issues welcome!

10 Likes

This looks super helpful! Is it also possible to recover IP addresses/hostnames of the writer/reader?

1 Like

Yes — hostnames with --stats, addresses from discovery alone, and --locators now shows both in the table: https://atinfinity.github.io/fastdds_transport_viz/how-it-works/#hosts-and-addresses

1 Like

Nice! I have often wanted better debugging/visibility of my RMWs. What kinds of bugs/problems has it helped you find?

2 Likes

Thanks for the comment. Let me give you an example: I expected Topic A to communicate via SHM Transport, but it was using UDPv4 Transport instead. Standard tools don’t make it easy to detect this. Also, I added an advisory feature in this PR: Add --advise: what to change to get past each reason code by atinfinity · Pull Request #90 · atinfinity/fastdds_transport_viz · GitHub

Ah yes. Yet another rmw tool that works for only one specific vendor. Sigh.

1 Like