Skip to main content

Foxglove Bridge

Use the Foxglove Bridge to visualize your live ROS 1 or ROS 2 data over Foxglove WebSocket or remote access.

Overview

The Foxglove Bridge connects your ROS stack to Foxglove. It uses a protocol similar to rosbridge, but with the ability to support additional schema formats such as ROS 2 .msg and ROS 2 .idl, parameters, graph introspection, and non-ROS systems.

The bridge is implemented as a C++ node and is designed for high performance with low overhead.

Getting started

Follow the ROS 1 or ROS 2 getting started guide to install the bridge and connect Foxglove to your robot.

For the full list of configuration parameters, see the ROS 1 configuration reference or the ROS 2 configuration reference.

Remote access

The Foxglove Bridge supports remote access for ROS 1 and ROS 2, allowing organization members to visualize and teleoperate the device through the Foxglove platform without direct network access.

To enable remote access, set remote_access to true and provide a device token via the FOXGLOVE_DEVICE_TOKEN environment variable. Once started, the device appears on the Devices page and can be connected to remotely.

FOXGLOVE_DEVICE_TOKEN=fox_dt-... \
ros2 launch foxglove_bridge foxglove_bridge_launch.xml \
remote_access:=true
ParameterDescriptionDefault
remote_accessEnable remote access through the Foxglove platformfalse
device_tokenDevice token used to authenticate the device. If not set, falls back to the FOXGLOVE_DEVICE_TOKEN environment variable. Prefer the environment variable: a token passed as a parameter is visible to other processes on the ROS network (via the ROS 1 parameter server or the ROS 2 parameter services), while the environment variable is only visible to the bridge process
video_transcode_topic_denylistROS 2 only. Topics matching these regexes (ECMAScript) are delivered as data instead of transcoded to video, for images whose pixels must not pass through lossy video (such as depth images)['.*/compressedDepth']

System info

The foxglove_bridge can collect system information with CPU, memory, swap, and operating system details, and forward that data over to the Foxglove application via the /foxglove_bridge/sysinfo topic.

You can configure this by setting the sysinfo parameters when starting the bridge:

ros2 launch foxglove_bridge foxglove_bridge_launch.xml \
sysinfo:=true \
sysinfo_topic:=/foxglove_bridge/sysinfo \
sysinfo_refresh_interval:=500
ParameterDescriptionDefault
sysinfoWhether the system info publisher is enabledtrue
sysinfo_topicThe topic name the metrics are published on/foxglove_bridge/sysinfo
sysinfo_refresh_intervalThe interval (in milliseconds) over which metrics are refreshed. Clamped to a min of 200ms500

See the SystemInfoPublisher docs for details on what metrics are published.

Development

To build from source or to contribute to the project, check out the foxglove-sdk GitHub repo for the ROS 2 bridge, or the foxglove-bridge-ros1 repo for the ROS 1 bridge.