Skip to main content

173 posts tagged with "Foxglove"

Release notes for the Foxglove web and desktop app.

View All Tags

Foxglove v2.7.0

๐Ÿ›Ž๏ธ List available services from ROS and custom Foxglove websocket connectionsโ€‹

When streaming live data for visualization over the Foxglove bridge, the available services are now listed in the Service Call panel.

โ˜๏ธ Quickly access recent cloud data sourcesโ€‹

Recently accessed cloud data sources will now show in the "recent sources" list on both the dashboard and the left-hand menu. These sources will be marked with a โ˜๏ธ icon.

You can now create shareable links using ds.deviceName to refer to data associated with one of your devices using the name you gave it in Foxglove. For example, to create a shareable link that visualizes data from my-device between specified start and end times with the layout ID abc123, use the following parameters:

ds.deviceName=my-device
ds.start=2024-04-18T16:26:41.371Z
ds.end=2024-04-18T16:30:51.055Z
ds.layoutId=abc123

The URL will look like this and can be shared with anyone in the my-org organization:

https://app.foxglove.dev/my-org/view?ds=foxglove-stream&ds.deviceName=my-device&ds.start=2024-04-18T16%3A26%3A41.371Z&ds.end=2024-04-18T16%3A30%3A51.055Z&layoutId=abc123

Note that parameters must be URL encoded, so for example 2024-04-18T16:26:41.371Z becomes 2024-04-18T16%3A26%3A41.371Z.

๐ŸŽ Performance gains on macOSโ€‹

The Foxglove desktop app on Mac now uses Metal, a high-performance graphics API developed by Apple. By using Metal, we're now able to reduce CPU overhead and get nearly direct access to GPU resources for significant performance gains.

New & Improved
Performance
  • Performance improvements for preloading topics
  • Improved memory estimation to reduce out-of-memory issues with data containing high-frequency signals and large numbers of message fields
Fixes
  • Fixed an issue that resulted in numerous app upgrade notifications on desktop
  • Fixed an issue where double-clicking an MCAP file to open it with the desktop app would not add it to recents
  • Fixed an issue with timeseries plot dataset preloading
  • Fixed an issue with message converters being called more frequently than necessary for preloaded topics
  • Fixed an issue causing some User Scripts to fail
API
  • The retainRecordingsSeconds property for Edge Sites on the /sites API has been updated to intepret 0 as indefinite retention period

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal

Foxglove v2.6.1

This release contains some minor bug fixes.

Fixes
  • Fixed an issue with timeseries plot dataset preloading where some data was truncated when switching layouts

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal

Foxglove v2.6.0

โœ๏ธ Renaming Tab panelsโ€‹

Weโ€™ve made it easier to rename Tab panels. The Tab panel can be helpful for organizing complex layouts where you need lots of information at hand without switching layouts.

๐Ÿšจ Better handling of conflicting message schemasโ€‹

Robotic systems are complex and multi-faceted. Itโ€™s occasionally possible to accidentally introduce two different versions of the same schema on the same robot system. To help with this, we added friendly error messages that surface in the Problems sidebar when conflicting duplicate schema names are found in an MCAP file and cause replay issues.

New & Improved
  • Added clarifying tooltips to the settings of several panels
Performance
Fixes
  • Fixed an issue where reinstalling a local extension would temporarily clear out the settings editor for custom panels
  • Fixed an issue in the Raw Messages panel where some values were not properly left-aligned
  • Fixed a bug where Global Variables were being initialized as a string containing two quotes ("\"\"")
  • Fixed an issue with opening items from the recent list in multiple windows
  • Fixed an issue where series in the Plot panel with auto-assigned colors would change color when another series was removed
  • Fixed an issue where uploading and then deleting a recording with a key via the /data REST API prevented uploading another recording with the same key ever again
  • Fixed an issue in the Raw Messages panel preventing users from opening items in long arrays one at a time
  • Fixed an issue preventing Foxglove from initializing when many instances of the app with multiple extensions are open
API
  • Added includeData and updatedSince query parameters to the /layouts REST API

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal

Foxglove v2.5.1

This release contains some minor bug fixes.

Fixes
  • Fixed an issue with drag-and-drop that resulted in opening the dragged file too many times
  • The Plot legend now correctly respects math modifiers used in message paths

Foxglove v2.5.0

๐Ÿค Customize table viewsโ€‹

You can now manage and resize table columns on the Device and Event tables to customize how you view your data.

โฑ๏ธ RFC 3339 and 24-hour time formatsโ€‹

Visualization playback now supports displaying timestamps in RFC 3339 (ISO 8601) and 24-hour formats in addition to 12-hour and epoch.

โœ๏ธ Renamed NPM packageโ€‹

When we launched Foxglove 2.0, we dropped the "Studio" name. In keeping with that, we renamed the @foxglove/studio NPM package to @foxglove/extension. Please update your custom extensions to depend on @foxglove/extension to receive future SDK updates.

New & Improved
  • All users on free plans have the โ€œadminโ€ role to simplify how small teams and individuals use Foxglove
  • Improved the discoverability of help text in settings
  • Device name search in UI is now case insensitive
  • When streaming a recording from Foxglove cloud, recording name shows in the app bar
  • Added support for OMG IDL empty structs
  • Added support for FlatBuffer union fields, vectors of unions, and fixed-length arrays
  • FlatBuffer messages fields are now displayed in the order of their id
  • Added the ability to create shareable links using user-defined recordingKey
Performance
  • Made additional memory usage optimizations for the state transition panel
  • Improved the performance of querying Foxglove Events tied to a particular device
  • Performance improvements for parsing FlatBuffer messages
  • Performance improvements for loading recordings
  • Performance improvements for computing message paths used in auto-complete
  • Improved performance of connected-line scatter plots via downsampling
Fixes
  • Fixed a bug on the desktop app where zooming in/out during playback would result in a misaligned app bar
  • Fixed an issue where moving the desktop app between screens with different pixel densities would cause the toolbar to change size
  • ixed an issue where plot panels with no x-axis range configured would cause downsampled data to jitter for some datasets
  • Fixed multiple issues with the โ€œreset viewโ€ button behaving incorrectly on the state transition panel
  • Fixed a bug where window controls wouldn't appear in Linux desktop apps before sign in
  • Fixed incorrect message count for topics with multiple MCAP channels
  • Fixed a bug where message fields whose names contain special characters could not be plotted by clicking on the value from the Raw Message panel
  • Prevent layout shifts when hovering over a value in the Raw message panel
  • Fixed an issue causing drift of image annotations on large images when zooming in
  • Fixed an issue preventing markers from being deleted and re-added with the same id
  • Hardware acceleration now works for the Foxglove Snap package
  • Fixed decoding of JSON messages without complete JSON schema definitions
  • Malformed video data no longer causes the image panel to crash

Foxglove v2.4.0

๐Ÿ“ž Better ROS Service call integrationโ€‹

Weโ€™ve improved the Foxglove client integration with ROS Services to allow Foxglove to be aware if a service is unavailable and the service has failed. The Foxglove websocket protocol now has a serviceCallFailure operation that can communicate to custom panels or the Foxglove Service Call panel when a call fails.

๐Ÿ“ˆ Resizable reference lines in the Plot panelโ€‹

Did you know you can create reference lines in the Plot panel? Now you can adjust the size of reference lines to improve their visibility.

Resizable Reference Line GIF

New & Improved
  • Added helper text for escaping special characters when they show up in queries
  • Updated styling of plot tooltip to improve readability as data changes
  • Improved support for common ROS2 Iron datatypes when connecting live over Foxglove bridge
  • Added helper text to the Teleop panel when the publish rate is misconfigured
  • Extended OMG IDL support so mutable structs can now be decoded when non-optional fields are not present in the received message
Performance
  • Reduced the state transition panelโ€™s memory use as part of our perpetual commitment to performance improvements
Fixes
  • Fixed an issue causing the app to crash on startup on Ubuntu 24.04
  • Fixed a bug causing ImageAnnotations points to disappear when zooming and panning
  • Fixed deep links not working in some instances
  • Restarting the app with ctrl/cmd+R now reconnects to live data sources
  • Fixed an issue where Safari autofill was blocking some dropdown lists
  • MCAP files with empty schema records no longer cause Edge Site uploads to get stuck
  • Fixed an issue where some data might be missed when visualizing ROS .bag files
  • Fixed a bug where non-ASCII strings would be truncated when publishing messages to a ROS 1 server
  • Fixed an issue where, in some cases, the state transition panel would reset its view after you zoomed in on live data
  • Added protections and a friendly error message when a race condition is triggered by uploading the same extension twice

Foxglove v2.3.0

๐Ÿ“น Low-latency multi-video playbackโ€‹

Buckle up for smoother video loading: We've made performance improvements to video playback so you get a low latency experience when visualizing multiple CompressedVideo topics at once.


Foxglove v2.2.0

3Dโ€‹

Have you ever wanted to get a 3D view of the entire world? One of our users did, but had some issues with z-fighting that kept the visualization within Foxglove from looking as sharp as it should. We think that outer-space fighting should be limited to intergalactic battles, so we added a new setting to enable aย logarithmic depth buffer, which can improve rendering precision for large distance scales.

Using this feature may lead to a loss in rendering performance, but may be worth the price for users looking to visualize Earth-scale data, large maps, or just wanting to zoom in/out really, really far.

In this example below:

  • The left pane does not use logarithmic depth, and it has a near clipping plane of 1.0. The grids render smoothly, but objects close to the viewer are clipped.
  • The middle pane does not use logarithmic depth, and has a near plane of 0.01. The viewer can get closer to objects without clipping, but rendering artifacts (z-fighting) appear between multiple grids.
  • The right pane enables the new logarithmic depth setting. This avoids z-fighting by providing more depth precision for the grids, while still allowing a near plane value of 0.01 for reduced clipping.

Servicesโ€‹

The Service Call panel now has an option to hide the request and response text fields. This allows you to configure a request once up front, then invoke the service call without any distractions. We love distractions, but only the kinds that have wet noses and wagging tails.

image

JSON data sourcesโ€‹

  • When using a WebSocket connection, JSON channels and services with no schema are now supported (using an empty string for the schema name and data).
  • Added support for fixed-length arrays (specified with prefixItems).

Stability and usabilityโ€‹

  • The web application no longer encounters errors when a new version is released while the app is already open.
  • Various usability enhancements to Recordings, General and Team settings, Webhooks, data playback while buffering, and deep linking.
  • Improvements to error messages for opening incompatible files and layouts, and for WebSocket connections that encounter unexpected server behavior.

Foxglove v2.1.0

User scriptsโ€‹

  • Improvements to user scripts to allow returning types that consist ofย ย fields or fields withย types:
type Output = {
field1: Message<"std_msgs/String">;
field2: Array<number>;
};

It is now possible to create elaborate return types, for example:

import { Input, Message, Time } from "./types";
import { subtractTimes } from "./time";

type InputType = Message<"geometry_msgs/PoseStamped">;
type Output = {
header: InputType["header"];
time_diff: Time;
translation: Message<"geometry_msgs/Vector3">;
random_array: Array<number>;
};

export const inputs = ["/pose_stamped"];
export const output = "/pose_difference";

let lastMessage: InputType | undefined;

// Calculates translation & time difference between two subsequent poses.
export default function script(event: Input<"/pose_stamped">): Output | undefined {
const message = event.message;

if (!lastMessage) {
lastMessage = message;
return undefined;
}

const output: Output = {
header: message.header,
time_diff: subtractTimes(message.header.stamp, lastMessage.header.stamp),
translation: {
x: message.pose.position.x - lastMessage.pose.position.x,
y: message.pose.position.y - lastMessage.pose.position.y,
z: message.pose.position.z - lastMessage.pose.position.z,
},
random_array: [Math.random(), Math.random()],
};

lastMessage = message;
return output;
}

Snap packageโ€‹

  • Added interface to support using Foxglove with gamepads via the Snap Store.

Performanceโ€‹

  • Playback performance improvements when buffering data.