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
Added
- Added data source descriptions and docs links to the Data source dialog
- Added a
Frame lock
setting in a topic settings modal for nav_msgs/OccupancyGrid
topics in the 3D panel
- Added support for
geometry_msgs/PoseArray
messages and a setting to control geometry_msgs/PoseStamped
and geometry_msgs/PoseArray
messages' arrow shaft length in the 3D panel
- Added support for loading MCAP files from a remote URL
- Made all built-in types available for use in the Node Playground panel, even when users' data does not contain those types
- Added
velodyne_msgs/VelodyneScan
and velodyne_msgs/VelodynePacket
to the set of built-in message types
- Added support for
foxglove.FrameTransform
messages to the 3D panel, so users with MCAP files or Foxglove WebSocket data sources can build a transform tree graph
- Made current playback time available via the extensions API
- Added support for
foxglove.GeoJSON
messages that adds GeoJSON markers to the map in the Map panel, for users with MCAP files or Foxglove WebSocket data sources
- Added support for
foxglove.PoseInFrame
, foxglove.PosesInFrame
, and foxglove.Color
support to the 3D panel, for users with MCAP files or Foxglove WebSocket data sources
Changed
- Improved error messages during MCAP reading to include information about which library produced the file
- Display message order warnings in the Data source sidebar, instead of via toast notifications
- Adjusted shaft length of pose in nuScenes sample data demo
- Improved error messages when attempting to access data from Foxglove when not logged in or logged in to the wrong organization
Fixed
- Include the relevant
package://
URL in the error message when failing to load a resource via a package://
URL
- Fixed a bug in the 3D panel where
sensor_msgs/LaserScan
messages with intensities would sometimes not allow coloring by intensity
- Fixed an issue with incorrect updates to the state URL and the Data source dialog's "Recents" list
- Do not display errors when users encounter previously unseen schema/channel combinations while playing data from Foxglove
- Confirmed image annotation dropdown does not jump around between selecting options
- Fixed 3D panel flicker when using the Velodyne connection with a sensor in dual return mode
- Fixed incorrect fetching behavior for remote bag and MCAP file sources, where the app would make HTTP Range requests that were too large and beyond the end of the file