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 containinglog / 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 withbattery, 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 containingstate.
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:- 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. - Topic name keywords — If the schema is not recognized, the topic name is scanned for keywords (e.g., a topic named
/front_camera/rawmatches thecamerakeyword and gets an Image panel). - Raw Messages fallback — If neither the schema nor the topic name produces a match, the topic is assigned to the Raw Messages panel.
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:- Open the panel settings for the topic you want to change.
- Select a different panel type from the dropdown.
- The topic is re-rendered in the new panel immediately.
Next Steps
Supported Messages
See which message schemas trigger each panel type.
Custom Schemas
Use Protobuf, JSON Schema, or ROS .msg definitions for custom message types.