Skip to main content

Foxglove Bridge

Use the Foxglove Bridge to visualize your live ROS 1 or ROS 2 data via the Foxglove WebSocket connection.

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.

Installation

The foxglove_bridge package is available for ROS 1 Melodic and Noetic, and ROS 2 Humble, Jazzy, Kilted, and Rolling. Earlier releases of ROS will not be supported due to API design and/or performance limitations. The package can be installed with the following command:

sudo apt install ros-$ROS_DISTRO-foxglove-bridge

Launch

Start the foxglove_bridge from your ROS workspace using roslaunch in ROS 1 or ros2 launch in ROS 2. Optional configurations and their default values are below.

ros2 launch foxglove_bridge foxglove_bridge_launch.xml

Add foxglove_bridge to your launch file if you plan to use it anytime your robot is online.

Configuration

Configuration options vary depending on whether you're using ROS 1 or ROS 2.

Remote access

The Foxglove Bridge supports remote access for 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 device_token launch argument or the FOXGLOVE_DEVICE_TOKEN environment variable. Once started, the device appears on the Devices page and can be connected to remotely.

ros2 launch foxglove_bridge foxglove_bridge_launch.xml \
remote_access:=true \
device_token:=fox_dt-...
ParameterDescriptionDefault
remote_accessEnable remote access through the Foxglove platformfalse
device_tokenDevice token used to authenticate the device. Falls back to the FOXGLOVE_DEVICE_TOKEN environment variable if not set

System info

The ROS 2 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 parameters when invoking ros2 launch:

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.