Foxglove Documentation
website·Indexed 30 days ago
https://foxglove-docs.pages.dev/Documentation for Foxglove's panel-based data visualization and debugging platform. Includes guides for the Foxglove SDK, streaming live data via Python and C++, integrating hardware like Stereolabs ZED cameras and LeRobot, and using FoxQL for data transformation. Covers core features such as MCAP and ROS bag file playback, custom layouts, user scripts in TypeScript, and comparison mode for analyzing multiple data sources.
What's inside Foxglove
- Foxglove Agents allow users to interact with robotics data using natural language. They can be used to search recordings, triage and debug data, build layouts, and write user scripts. Foxglove does not use chat data to train AI models.
Overview of Foxglove Remote Access
Remote access allows organization members to visualize and teleoperate devices through the Foxglove platform. It uses a gateway running on the device that authenticates via a device token and connects to Foxglove, enabling connectivity even behind firewalls or on cellular networks. Key technical features include:
- NAT Traversal: Uses STUN and TURN relays to avoid the need for public IPs or inbound ports.
- Efficient Fan-out: Uses a Selective Forwarding Unit (SFU) to multicast streams to multiple clients.
- Low-latency Delivery: Uses lossy data channels by default; reliable delivery is available for specific topics (e.g., static transforms).
- Adaptive-bitrate Video: Image data is transcoded into video tracks that adapt to available bandwidth.
- Point Cloud Compression: Uses Draco compression by default to reduce bandwidth.
Overview of Foxglove Data Platform
The Foxglove Data Platform is a cloud-based data storage and management solution consisting of a fully-managed control plane paired with either a fully-managed or self-hosted data plane. It allows users to store and manage data in the cloud for visualization and analysis.Overview of Foxglove SDK capabilities
The Foxglove SDK is available for C++, Python, and Rust under the MIT license. It allows developers to stream robot data live to the Foxglove app for visualization or log data to MCAP files for later analysis.Organize layout using the Tab panel
The Tab panel allows you to group related panels into tabs, helping to organize your layout and reduce clutter by switching between different sets of panels within the same space.Display content using the Markdown panel
The Markdown panel allows you to display Github Flavored Markdown (GFM) within a layout. It supports rendering static Markdown as well as dynamic Markdown derived from incoming message data. For detailed information on supported features and syntax nuances, refer to the remark-gfm specification.Visualize coordinate frame hierarchies with the Transform Tree panel
The Transform Tree panel allows users to visualize the hierarchical relationship of coordinate frames. By clicking on a specific frame, you can view metadata including when the frame last received a transform and the total number of transforms received. When using Comparison mode, use the Data source picker in the panel toolbar to select which data slot to display.Visualize Voxel Grids in the 3D Panel
The 3D panel supports volumetric grids used for occupancy information, robot navigation, and obstacle avoidance. Each voxel is rendered as a cube in 3D space based on the message's resolution, origin, and data fields.
Supported schemas include:
- ROS 1:
costmap_2d/VoxelGrid - ROS 2:
nav2_msgs/msg/VoxelGrid - Custom:
foxglove.VoxelGrid
- ROS 1:
Understand Foxglove Cloud Bring Your Own Storage (BYOS)
Bring your own storage (BYOS) allows you to keep your recordings in your own cloud bucket. Foxglove manages the indexing, query, and streaming operations within the same region as your bucket to maintain performance and security.Visualize numeric data using the Gauge panel
The Gauge panel displays numeric values from an incoming expression on a customized gauge display. It uses FoxQL to retrieve numeric values from a topic. When using Comparison mode, the specific data slot to display can be selected via the Data source picker in the panel toolbar. FoxQL functions can be applied to the data path using the.@namesyntax.Choose a data source for Foxglove
Foxglove provides three primary methods for connecting to robotics data. Once a source is connected, the available topics are displayed in the sidebar for visualization.
- Live: Used to stream real-time data directly from a live robotics stack.
- Local: Used to open data files stored on your computer, supporting MCAP, ROS 1 bag, ROS 2, and PX4 ULog formats.
- Cloud: Used to stream data from the Foxglove Data Platform or load remote MCAP and ROS 1 bag files via a URL.
Navigate the Foxglove visualization interface
The Foxglove interface consists of several key components used to manage data sources, layouts, and panel configurations:
- App menu: Used to connect to data sources, toggle sidebars, and view resources.
- Add tab: Adds a new tab to the current window.
- Add panel: Adds a visualization panel to the current layout.
- Layout menu: Allows saving the current workspace view as a layout for sharing with teammates.
- Left sidebar: Contains three primary views: Panel (edit panel settings), Topics (view data source topics), and Problems (troubleshoot connection issues).
- Right sidebar: Contains Variables (set layout-wide variables), User Scripts (write layout-scoped scripts), and Performance (view playback metrics). Note: The Performance tab requires debugging features to be enabled in General settings.
- User menu: Used for account sign-in, preference configuration, and extension management.