No version for distro humble showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro jazzy showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro kilted showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro rolling showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro ardent showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro bouncy showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro crystal showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro eloquent showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro dashing showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro foxy showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
iron

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro lunar showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro jade showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro indigo showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro hydro showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

No version for distro kinetic showing galactic. Known supported distros are highlighted in the buttons above.
Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
galactic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
melodic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.

Repo symbol

foxglove_bridge repository

foxglove_bridge

ROS Distro
noetic

Repository Summary

Checkout URI https://github.com/foxglove/ros-foxglove-bridge.git
VCS Type git
VCS Version main
Last Updated 2025-10-08
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
foxglove_bridge 0.8.5

README

foxglove_bridge

High performance ROS 1 WebSocket bridge using the Foxglove WebSocket protocol, written in C++. If you are looking for the ROS 2 WebSocket bridge, please go to https://github.com/foxglove/foxglove-sdk.

Motivation

Live debugging of ROS systems has traditionally relied on running ROS tooling such as rviz. This requires either a GUI and connected peripherals on the robot, or replicating the same ROS environment on a network-connected development machine including the same version of ROS, all custom message definitions, etc. To overcome this limitation and allow remote debugging from web tooling or non-ROS systems, rosbridge was developed. However, rosbridge suffers from performance problems with high frequency topics and/or large messages, and the protocol does not support full visibility into ROS systems such as interacting with parameters or seeing the full graph of publishers and subscribers.

The foxglove_bridge uses the Foxglove WebSocket protocol, a similar protocol to rosbridge but with the ability to support additional schema formats, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack.

Installation

Note: While binary packages are available for ROS 1, all ROS 1 distributions are End-of-Life. That means that new binary packages of foxglove_bridge cannot be released into those distributions, and the versions are quite outdated. It is highly recommended to build foxglove_bridge from source for the latest bug fixes. For similar reasons, this foxglove_bridge package for ROS 1 is in maintenance mode and only bug fixes will be applied.

Running the bridge

To run the bridge node, it is recommended to use the provided launch file:

ROS 1

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765

<launch>
  <!-- Including in another launch file -->
  <include file="$(find foxglove_bridge)/launch/foxglove_bridge.launch">
    <arg name="port" value="8765" />
    <!-- ... other arguments ... -->
  </include>
</launch>

Configuration

Parameters are provided to configure the behavior of the bridge. These parameters must be set at initialization through a launch file or the command line, they cannot be modified at runtime.

  • port: The TCP port to bind the WebSocket server to. Must be a valid TCP port number, or 0 to use a random port. Defaults to 8765.
  • address: The host address to bind the WebSocket server to. Defaults to 0.0.0.0, listening on all interfaces by default. Change this to 127.0.0.1 (or ::1 for IPv6) to only accept connections from the local machine.
  • tls: If true, use Transport Layer Security (TLS) for encrypted communication. Defaults to false.
  • certfile: Path to the certificate to use for TLS. Required when tls is set to true. Defaults to "".
  • keyfile: Path to the private key to use for TLS. Required when tls is set to true. Defaults to "".
  • topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted topic names. Defaults to [".*"].
  • service_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted service names. Defaults to [".*"].
  • param_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted parameter names. Defaults to [".*"].
  • client_topic_whitelist: List of regular expressions (ECMAScript grammar) of whitelisted client-published topic names. Defaults to [".*"].
  • send_buffer_limit: Connection send buffer limit in bytes. Messages will be dropped when a connection’s send buffer reaches this limit to avoid a queue of outdated messages building up. Defaults to 10000000 (10 MB).
  • use_compression: Use websocket compression (permessage-deflate). It is recommended to leave this turned off as it increases CPU usage and per-message compression often yields low compression ratios for robotics data. Defaults to false.
  • capabilities: List of supported server capabilities. Defaults to [clientPublish,parameters,parametersSubscribe,services,connectionGraph,assets].
  • asset_uri_allowlist: List of regular expressions (ECMAScript grammar) of allowed asset URIs. Uses the resource_retriever to resolve package://, file:// or http(s):// URIs. Note that this list should be carefully configured such that no confidential files are accidentally exposed over the websocket connection. As an extra security measure, URIs containing two consecutive dots (..) are disallowed as they could be used to construct URIs that would allow retrieval of confidential files if the allowlist is not configured strict enough (e.g. package://<pkg_name>/../../../secret.txt). Defaults to ["^package://(?:[-\w%]+/)*[-\w%]+\.(?:dae|fbx|glb|gltf|jpeg|jpg|mtl|obj|png|stl|tif|tiff|urdf|webp|xacro)$"].
  • max_update_ms: The maximum number of milliseconds to wait in between polling roscore for new topics, services, or parameters. Defaults to 5000.
  • service_type_retrieval_timeout_ms: Max number of milliseconds for retrieving a services type information. Defaults to 250.

Building from source

Fetch source, install dependencies, and build for ROS 1

source /opt/ros/noetic/setup.bash
mkdir -p foxglove_bridge_ws/src
cd foxglove_bridge_ws
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
catkin_make install
source install/setup.bash

Clients

Foxglove connects to foxglove_bridge for live robotics visualization.

License

foxglove_bridge is released with a MIT license. For full terms and conditions, see the LICENSE file.