I’m happy to introduce PlotJuggler Bridge, a lightweight server that exposes ROS 2 or DDS topics over WebSocket, allowing remote tools like PlotJuggler to access telemetry without directly participating in the middleware network.
In many robotics setups, accessing telemetry from another computer is harder than it should be. DDS discovery over WiFi can be unreliable, opening DDS networks outside the robot can create configuration issues, and installing a full ROS 2 environment on every machine used for debugging is often inconvenient.
PlotJuggler Bridge solves this by acting as a gateway between the middleware network and external clients.
It runs close to the robot, reads the topic data, and exposes it through a simple WebSocket endpoint that any client can connect to.
This approach keeps the ROS/DDS network local while making telemetry easily accessible from other machines.
The project is available here:
Why it is useful
This is especially helpful in scenarios such as:
- monitoring a robot remotely over WiFi
- accessing telemetry from Windows or macOS machines without ROS installed
- avoiding DDS discovery and networking configuration issues
- debugging systems without exposing the full middleware network
- connecting tools without needing message definitions compiled locally
Because the bridge performs runtime schema discovery, clients can access topics even if they use custom ROS messages, without requiring those message packages to be installed on the client machine.
The bridge also aggregates and optionally compresses data, which helps reduce bandwidth usage and improves stability when streaming telemetry over wireless networks.
Main features
PlotJuggler Bridge includes several features designed for real-world robotics workflows:
- WebSocket access through a single endpoint
- automatic runtime discovery of topic schemas
- support for custom ROS message types without client-side compilation
- aggregation of messages for efficient streaming
- optional ZSTD compression
- support for multiple simultaneous clients
- bandwidth-friendly handling of large messages by stripping large array fields while preserving useful metadata
How it works
ROS 2 / DDS -> PlotJuggler Bridge -> WebSocket -> PlotJuggler
The bridge subscribes to topics in the ROS/DDS network and exposes them through a WebSocket server.
External tools can connect and receive the streamed telemetry without joining the middleware network.
Quick to start
The bridge can typically be up and running in less than 5 minutes.
Setup instructions are available in the repository README:
You will need PlotJuggler 3.16 or newer, which includes the WebSocket client plugin:
Basic usage
Once the bridge is running, the workflow is straightforward:
- Start the bridge on the machine connected to the ROS/DDS network.
- Open PlotJuggler on any computer.
- Connect to the WebSocket Client using the bridge address.
The available topics will be discovered automatically and can be inspected immediately.
About the work
My name is Álvaro Valencia, and I am currently working on PlotJuggler as an intern while finishing the last months of my Robotics Software Engineering degree.
I collaborate closely with @facontidavide on this project. PlotJuggler clearly reflects years of work, effort and passion, and contributing to it is a great experience.
Together we are developing the components required to make this new Robot → PlotJuggler connection workflow simple and practical to use. The goal is to make remote telemetry access easier while keeping the system flexible for future extensions that will appear in upcoming PlotJuggler developments.
And stay tuned… more interesting things are coming soon for PlotJuggler.




