Overview
Foxglove provides three fleet software components that run on or alongside your devices. This page describes how they relate to one another.
- The Foxglove Agent provides buffered connectivity between a device and the Foxglove cloud.
- The Foxglove Bridge connects ROS 1 and ROS 2 systems to Foxglove with minimal configuration.
- The Foxglove SDK is a general-purpose library for custom integrations and non-ROS platforms.
Foxglove Agent
The Foxglove Agent buffers local data for transmission to the Foxglove Data Platform. It handles recordings by:
- Monitoring a local directory for recording files
- Sending recording file metadata to the cloud
- Importing recording files to the Data Platform on demand
The Agent isn't a live data source, because it isn't directly connected to your data (for example, via ROS middleware). To serve live data, use the Foxglove Bridge or SDK.
Foxglove Bridge
The Foxglove Bridge is the recommended starting point for ROS platforms. It's easy to deploy, requires minimal configuration, and lets you connect to your device to stream real-time ROS data into Foxglove. Use it when you want a ready-made integration for ROS 1 or ROS 2.
The bridge exposes ROS middleware over WebSocket connections for ROS 1 and ROS 2, and over Remote Access connections for ROS 2. The ROS 2 bridge is built on top of the SDK.
Foxglove SDK
The Foxglove SDK is an open-source library for streaming bidirectional data over WebSocket and Remote Access connections. It's more general purpose than the Foxglove Bridge: use it when you need to stream live data from a non-ROS platform or custom middleware.
When using the SDK for live visualization, you write the integration layer that reads from your robot's middleware, maps the data into message types that Foxglove can understand, and publishes it through the SDK. You can also use the SDK to log data to MCAP files, and it includes types that make it easier to work with Foxglove messages.
The SDK is available for C++, Python, and Rust.