Skip to main content
The multi-sensor viewer assigns each topic to one of 8 panel types based on the message schema and topic name. This page describes each panel type, what triggers it, and what it displays.

Image Panel

Renders camera feeds from image topics. This is the most common panel for autonomous vehicle and robotics recordings. Triggered by: sensor_msgs/Image, sensor_msgs/CompressedImage, foxglove.CompressedImage, foxglove.RawImage, or topics with image / camera in the name. Capabilities:
  • Displays uncompressed and compressed (JPEG, PNG) images
  • Multi-camera grid layout when a recording contains multiple image topics
  • Frame-by-frame navigation synchronized with the timeline
  • Supports annotation overlays (bounding boxes, polygons, keypoints)
  • LiDAR-to-camera projection when transform data is available

3D / Point Cloud Panel

Renders point cloud data in an interactive 3D viewport. Supports LiDAR, radar, and any data that produces 3D points. Triggered by: sensor_msgs/PointCloud2, foxglove.PointCloud, or topics with lidar / pointcloud / velodyne / points / pose / odom / tf in the topic name. Also matches schemas containing pose / transform / odometry. sensor_msgs/LaserScan and radar_msgs/RadarScan are routed here when the topic name contains a matching keyword. Capabilities:
  • Six visualization modes for coloring and filtering points
  • Bird’s-eye view, perspective view, and side views
  • Orbit, pan, and zoom camera controls
  • 3D cuboid annotation with full position, dimension, and rotation control
  • Point cloud intensity, ring, and custom field coloring

Plot Panel

Displays time-series charts for numeric data. Useful for IMU readings, velocities, temperatures, and any scalar or vector measurement. Triggered by: sensor_msgs/Imu, schemas containing twist / vector3 / float / int, or topics with imu / cmd_vel / battery / temperature / sensor in the name. The imu keyword is matched in both schema and topic names. Capabilities:
  • Line charts showing values over time
  • Multiple fields plotted simultaneously (e.g., x, y, z components of angular velocity)
  • Cursor linked to the global timeline — scrubbing updates the chart position
  • Zoom and pan within the time range

Raw Messages Panel

Displays any message as a JSON tree view. This is the fallback panel for topics that do not match a recognized schema. Triggered by: Available for all topics. Used automatically when no other panel type matches. Capabilities:
  • Expandable JSON tree showing every field in the message
  • Updated in real time as the timeline advances
  • Useful for debugging, inspecting unknown schemas, and verifying message contents
  • Supports search within message fields

Log Panel

Displays text log output in a scrollable, filterable list. Commonly used for ROS node logs and diagnostic messages. Triggered by: Schemas or topics containing log / rosout. Capabilities:
  • Scrollable log output with timestamps
  • Filterable by severity level (debug, info, warning, error, fatal)
  • Color-coded severity indicators
  • Synchronized with the global timeline

Map Panel

Displays geographic data on an interactive map. Shows vehicle or robot trajectories and localization data. Triggered by: sensor_msgs/NavSatFix, schemas or topics containing navsat / gps, or topics with fix in the name. Capabilities:
  • Interactive map with satellite and street views
  • Vehicle/robot path traced from GPS data
  • Current position indicator synchronized with the timeline
  • Zoom and pan controls

Gauge Panel

Displays a single numeric value with an optional range. Designed for scalar sensor readings that are best understood as a current value rather than a time series. Triggered by: Manual panel type assignment. The Gauge panel is not auto-assigned by topic detection — topics with battery, temperature, or sensor keywords are routed to the Plot panel by default. You can switch any numeric topic to Gauge mode using the panel type selector. Capabilities:
  • Large, readable current-value display
  • Optional minimum and maximum range indicators
  • Updated in real time as the timeline advances
  • Suitable for battery level, temperature, signal strength, and similar readings

State Transitions Panel

Visualizes discrete state changes over time. Shows when a system transitioned between states and how long it remained in each state. Triggered by: Schemas or topics containing state. Capabilities:
  • Horizontal timeline showing state durations as colored segments
  • State labels displayed within each segment
  • Synchronized with the global timeline cursor
  • Useful for visualizing operating modes, error states, and system lifecycle events

Detection Priority

Panel type assignment follows a strict priority order:
  1. Schema name — If the message schema matches a known type (e.g., sensor_msgs/PointCloud2), the corresponding panel is used. This is the most reliable method.
  2. Topic name keywords — If the schema is not recognized, the topic name is scanned for keywords (e.g., a topic named /front_camera/raw matches the camera keyword and gets an Image panel).
  3. Raw Messages fallback — If neither the schema nor the topic name produces a match, the topic is assigned to the Raw Messages panel.
See the auto-detection keyword table for the full list of keyword-to-panel mappings.

Manual Override

You are not locked into the auto-detected panel type. In the multi-sensor viewer, you can change the panel type for any topic:
  1. Open the panel settings for the topic you want to change.
  2. Select a different panel type from the dropdown.
  3. The topic is re-rendered in the new panel immediately.
This is useful when auto-detection assigns a topic to a generic panel (like Raw Messages) and you know it should be displayed differently.
Changing a topic to an incompatible panel type (e.g., assigning a point cloud topic to an Image panel) may result in rendering errors. Use manual override only when you know the data is compatible with the target panel.

Next Steps