Skip to content

3. Visualization

carolinabamorim edited this page Nov 4, 2024 · 4 revisions

You can use it as desktop app (available on Linux, Windows or macOS) or navigate to the webapp in a Chrome browser window.

Desktop-only features

Connecting to data

  • Opening a native ROS 1 connection
  • Connecting to your Velodyne LIDAR hardware
  • Loading local URDF and mesh resources in the #D panel using URLs prefixed with package://

Extensions

  • Installing extensions via the registry
  • Installing extensions locally

Interface

Connect to a data source to explore it with lichtblick's visualization and debugging tools.

{AE7BA53D-384C-48D6-949A-AE45D5E4EADE}

App menu: connect to a data source, toggle sidebars or view resources

Add panel: Add a panel to the current layout

Left sidebar: Edit panel settings (Panel), view data source's topics (Topics), troubleshoot issues with your connection (Problems), and save your workspace view as a layout (Layouts)

User menu: Visualization settings and manage extensions

System requirements

Lichtblick data visualization requires Chrome v103+. Lichtblick supports Windows, macOS and Linux on both web and desktop. Actual performance will depend significantly on a number of factors including the data you are visualizing, network connectivity and whether you're looking at live, local or cloud data, among other factors.

Playback

When visualizing a local or remote data file, you can navigate through the content using the playback controls bar

{7D368C70-4592-4010-B1AC-4DFD3BFCC26E}

Message ordering

Typically, robotic data includes different types of timestamps. Some panels can be configured to order messages by header stamp (e.g. Plot and State Transitions panels)

Frameworks Description Notes
Receive time ROS 1
ROS 2
MCAP (log_time)
When message is received by the recording service * For live connections
* Varies if the recording service is running on the robot vs external client
Header stamp ROS 1
ROS 2
Message's header.stamp field, set by user Varies with clock view when working with distributed systems
Publish time ROS 2
MCAP (publish_time)
When message is published Varies with clock skew when working with distributed systems

Message loading

Lichtblick enhances the loading of the complex robotics data, for more streamlined seeking and playback.

Message "lookback"

When seeking to an arbitrary point in your loaded data, it's unlikely that every topic you are visualizing has a message at exactly the time you jumped to. The vast majority of your topics will have messages sometime before or after that exact seek point.

To ensure that your layout still displays something reasonable, lichtblick performs a “lookback” on your data. Essentially, it looks for the most recent message on each subscribed topic. This ensures that even when seeking to an arbitrary point in your data, lichtblick will still display reasonable data for all the panels in your layout – even if their messages occurred at different times.

Latched topics

By default, ROS 1 .bag files, MCAP files, and Foxglove data streams will play back using message latching.

When seeking within your data, lichtblick fetches the last message on all subscribed topics – even if they occurred multiple minutes before your seek location. Every panel in the layout will then automatically display the last data it saw for that topic – even if that data is infrequently published or was not published at that exact moment in time. For lichtblick data streams, it will load the last seen messages for each subscribed topic – even if those messages are from before your current data segment's start time.

Message latching allows panels to accurately display data from infrequently published topics (like a map, for example), even while seeking around to multiple points in your data at random.

Preloading

While most lichtblick panels – like the Raw Messages and Image panels – display just the most recent message for a given topic, others like the Plot and Map panels benefit from visualizing messages across the data's entire time range. Seeing a complete view of one's data makes spotting anomalies, summarizing robot behavior, and recognizing trends and patterns much easier. Preloading data allows these panels to access all their historical data throughout playback.

Even panels that visualize their most recently seen data can benefit from preloading. For example, the 3D panel preloads its transform messages to accurately position its markers. Robots often have many coordinate frames (e.g. joints of a robot arm, cameras on a self-driving car), each with their own markers. To render markers from different frames in a single 3D scene, the panel needs to use transforms to calculate the position of these visual elements in a common coordinate space. Since transforms accumulate and update over time, looking at just the latest message would result in an incompletely or incorrectly rendered scene. By preloading all transforms, the 3D panel can accurately position its markers, regardless of where and how often you decide to seek in your data.

User interactions

  • Format the current timestamp display
  • Seek back and forth at increments of 100ms
  • Loop playback
  • Configure playback speed
  • Create, view, and search events

Shortcuts

  • Space – Pause or play
  • Shift + ← – Seek backward 10ms
  • Shift + → – Seek forward 10ms
  • ← – Seek backward 100ms
  • → – Seek forward 100ms
  • Alt + ← – Seek backward 500ms
  • Alt + → – Seek forward 500ms
Clone this wiki locally