Connect Reliably to ROS 1 and 2 Stacks with High-Rate Data and Large Messages

We’ve developed a new Foxglove bridge connection that dramatically improves streaming performance, provides custom message and publishing support, and offers reliable live connections to your ROS 1 and ROS 2 stacks.

We discovered that Rosbridge can struggle with streaming high-frequency topics and large messages like images and point clouds. We designed Foxglove bridge to tackle these performances issues and to provide a dramatically streamlined experience for teams debugging their robots.


Streaming Intel RealSense images (1280x720 raw rgb8 images) from a NVIDIA Jetson TX2 robot. We found that Rosbridge was unable to keep up with reading, serializing, and sending all streamed data, dropping ~36% of messages.

Install the foxglove_bridge ROS package and open a Foxglove WebSocket connection in Foxglove Studio to get started!

To learn more about our new foxglove_bridge, check out our docs and the package’s GitHub repo.

As always, join our Slack community to ask questions, or reach out to us directly with any feedback.

10 Likes

Great work!

Random thought:
Given that this bridge is available for ROS1 and ROS2, would it be possible to connect two bridges?
So one could replace the ros1_bridge by something like this:

ROS1 → foxglove_bridge → foxglove_bridge → ROS2

3 Likes

Sounds very nice :eyes: I am wondering how you achieved this speedup. Is it mostly due to a more efficient protocol? Or due to to the multithreading?

I also wonder if you were running rosbridge in bson mode in this benchmark?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.