Added
- Added animation effect when panels enter or exit fullscreen mode
Changed
- Cleaned up extension styling in the app sidebar
- Surfaced an error in the settings sidebar when the Plot panel's "Y min" is greater than its "Y max"
Fixed
- Fixed handling of Protobuf messages containing
google.protobuf.Timestamp
and google.protobuf.Duration
- Fixed an incorrect error message when an MCAP file contains messages that can't be decoded
- Fixed the 3D panel's pose tool to publish a pose based on the user's first click (start of pose arrow), rather than the second (end of pose arrow)
Changed
- Removed the default folder and file Icons in the settings sidebar
Fixed
- Fixed the issue of redundant toolbars on extension panels
- Fixed y-axis min and max settings for the Plot panel
- Fixed a crash when trying to edit Teleop panel settings
Changed
- Moved the Image panel's topic and marker selection into the settings sidebar
- Refactored panels to have a persistent toolbar with consistent height
- Changed the settings sidebar to display field-level errors
- Renamed the Diagnostics – Summary and Diagnostics – Detail panels to reflect that they are ROS-specific
- Removed the Studio – Internals panel
Fixed
- Hovering over buttons with tooltips properly displays the tooltip, without the button title
- Fixed support for ROS 2
rcl_interfaces/msg/Log
messages in the Log panel
Added
- Add Custom map tile layer option to Map panel
- Add new message expansion options in the Raw Messages panel
Changed
- Updated Tab panel tabs to look more like tabs
- Moved ordering messages by
header.stamp
for playback behind an experimental flag
Fixed
- Fixed panel dragging
- Fixed sample data source creating many duplicate layouts
Added
- Added support for rgba color values in the panel settings sidebar
- Added ability to toggle the visibility of nodes in the panel settings sidebar
- Added a 2-point gradient color picker to the panel settings sidebar
Changed
- Formatted the x-axis tick marks in the Plot panel for consistency, to reduce jitter for live-updating data
- Replaced the inline help buttons on panel settings fields with tooltips
- Adjusted light mode background color hierarchy to be more consistent with dark mode styles
- Moved the Rosbridge connection option to the top of the list in the Data source dialog
- Moved the actions buttons in the panel settings sidebar into an action menu
- Improved the link-sharing experience by always attempting to remotely load a URL’s
layoutId
from a signed in user’s account
Fixed
- Fixed app from freezing when seeking to the end of a dataset time range
- Fixed panels so that they no longer flash to an empty state when seeking or scrubbing
- Fixed ROS 2 native subscriptions to large message topics
- Fixed a bug where ROS 1 C++ subscribers were unable to connect to topics published by the app
- Fixed a
CameraInfo
error in the Image panel when the “Transform markers” setting is enabled
Changed
- Converted Plot panel settings to the new settings sidebar
- Converted 3D panel to new settings sidebar
- Printed datatype along with topic in errors for ROS2 connections
- Improved message path autocomplete suggestions
- Showed panel settings for single panel layouts when opening the settings sidebar
Fixed
- Fixed settings toggle interaction
- Fixed Foxglove publishing for ROS1 C++ subscribers
- Fixed the docs link in the open dialog
- Fixed a crash when trying to visualize a ROS2 topic with a missing message definition
- Fixed handling of the
layoutId
URL query param
- Improved React rendering performance
Added
- Display message counts and frequencies for live data sources' subscribed topics in the Data source sidebar
- Implemented a new settings interface for the Map panel
- Implemented a new settings interface for the Image panel
- Implemented a new settings interface for the Publish panel
- Implemented a new settings interface for the Variable Slider panel
- Implemented a new settings interface for the Diagnostics – Summary panel
- Implemented a new settings interface for the Node Playground panel
- Implemented a new settings interface for the 3D panel’s camera settings
Changed
- Allow users to name their nodes in the Node Playground panel without a
/studio_node/
prefix
- Display useful errors for invalid URL formats under the relevant field in the Data source dialog
- Improved bag player to backfill the last message on every topic on seek
Fixed
- Support
NaN
and Infinity
rosparam
values when using a native ROS 1 connection
- Keep the user’s cursor in the proper location while editing node names in the Node Playground panel
- Fixed an issue where creating too many layouts caused the web app to run out of storage space
- Fixed an issue where errors while loading Foxglove data could lead to the app repeatedly requesting the same data
- Fixed the missing marker images in the GeoJSON layers on the Map panel
Added
- Added the concept of optional fields to Foxglove datatype definitions
- Allow users to load URDF files using
.obj
meshes into the URDF panel
Changed
- Respect the URL's
layoutId
query parameter in the web app, even if no other parameters are specified
- Persist app state across refreshes in the desktop app
Fixed
- Fixed an issue with the spacebar adding unwanted panels
- Fixed an issue with the Plot panel auto-scaling on the y-axis
- Fixed an issue with the Topic Graph panel on startup with a
rosbridge
connection
- Fixed a bug where the panel settings menu would close when the Log panel received a new message and scrolled to display it
- Fixed an issue with stale messages being shown in the Raw Messages panel
- Fixed a bug where seeking in large files would occasionally crash
- Fixed an issue with content in the Data source dialog overflowing
- Ensure the panel settings menu is always displayed for built-in and extension panels, even when there are currently no settings available
- Fixed URL state encoding for ROS 1 and ROS 2 players in the web app
Added
- Added links for contacting Foxglove and scheduling a demo to the Data source dialog
- Added basic support for
foxglove.Grid
, foxglove.PointCloud
, and foxglove.LaserScan
messages to the 3D and Node Playground panels, for users with MCAP files or Foxglove WebSocket data sources
Changed
- Allow users to set
ROS_PACKAGE_PATH
to the root of their workspace so Foxglove can traverse all subdirectories when resolving package://
urls
Fixed
- Fixed a jumping dropdown menu in the Diagnostic panels
- Fixed publishing to
roscpp
subscribers
Added
- Added support for best-effort QoS mode for ROS 2 topics (
sensor_data
mode); added support for VLS-128 LIDAR sensors in the Velodyne data source
- Added support for the
/clock
topic in ROS 2 data sources; populated MessageEvent.publishTime
for ROS 2 and MCAP data sources
- Allow extensions to access
MessageEvent.publishTime
for ROS 2 and MCAP data sources
- Properly detect COLLADA (
.dae
) mesh markers in the 3D panel if the Content-Type
header or data:
URL MIME type is set to "model/vnd.collada+xml"
Changed
- Moved information inside the Data Source Info panel into the Data source sidebar once connection is live
- Display a topic warning when
nav_msgs/Path
poses have different frame_id
s in the 3D panel
- Simplified platform-specific app setup so that users only need one
App
component via @foxglove/studio-base
Fixed
- Fixed a bug with calibration data for VLS-128 LIDAR sensors in the 3D panel
- Fixed an issue with calculating start and end times in Foxglove player
- Fixed a bug where
enum
fields in Protobuf schemas were not usable via message path syntax
- Fixed ROS 2 native subscriptions to multiple publishers with different QoS profiles