Avala recognizes the following message schemas out of the box. Messages matching these types are automatically parsed and rendered in the appropriate panel — no additional configuration required.
Camera & Image
| Message Type | Framework | Description |
|---|
sensor_msgs/Image | ROS 1 / ROS 2 | Uncompressed image with encoding and dimension metadata. |
sensor_msgs/CompressedImage | ROS 1 / ROS 2 | JPEG or PNG compressed image. |
foxglove.CompressedImage | Foxglove | Foxglove schema for compressed images with timestamp and frame ID. |
foxglove.RawImage | Foxglove | Foxglove schema for uncompressed images with timestamp and frame ID. |
Camera and image messages are rendered in the Image panel. When a recording contains multiple image topics, Avala displays them in a multi-camera grid layout.
Record with sensor_msgs/CompressedImage (JPEG) to reduce file sizes significantly without losing annotation quality. Uncompressed images are supported but produce much larger recordings.
3D Point Clouds & LiDAR
| Message Type | Framework | Description |
|---|
sensor_msgs/PointCloud2 | ROS 1 / ROS 2 | Point cloud with arbitrary fields (x, y, z, intensity, ring, etc.). |
foxglove.PointCloud | Foxglove | Foxglove schema for point clouds with typed field descriptors. |
Point cloud messages are rendered in the 3D / Point Cloud panel. PointCloud2 supports any combination of fields — Avala reads the field descriptors from the message to determine how to interpret the data.
Laser Scan
| Message Type | Framework | Description |
|---|
sensor_msgs/LaserScan | ROS 1 / ROS 2 | 2D LiDAR scan with range and intensity arrays. |
LaserScan messages are routed to the 3D panel when the topic name contains a recognized keyword (lidar, pointcloud, velodyne, or points). Topics with unrecognized names fall back to the Raw Messages panel.
Radar
| Message Type | Framework | Description |
|---|
radar_msgs/RadarScan | ROS 2 | Radar detections with range, azimuth, elevation, and velocity fields. |
RadarScan messages are routed to the 3D panel when the topic name contains a recognized keyword. Topics with unrecognized names fall back to the Raw Messages panel.
sensor_msgs/LaserScan and radar_msgs/RadarScan are not schema-matched — they rely on topic name keywords for panel assignment. Include a keyword like lidar or points in your topic name to ensure automatic 3D panel routing.
| Message Type | Framework | Description |
|---|
tf2_msgs/TFMessage | ROS 1 / ROS 2 | Transform tree messages for sensor-to-vehicle coordinate transforms. |
foxglove.FrameTransform | Foxglove | Foxglove schema for frame transforms with parent/child relationships. |
sensor_msgs/NavSatFix | ROS 1 / ROS 2 | GPS fix with latitude, longitude, altitude, and covariance. |
Transform messages are used internally to resolve coordinate frames between sensors. Including /tf and /tf_static topics in your recordings enables Avala to project LiDAR data onto camera images and align data from sensors mounted at different positions.
NavSatFix messages are rendered in the Map panel, showing the vehicle or robot path on a geographic map.
IMU
| Message Type | Framework | Description |
|---|
sensor_msgs/Imu | ROS 1 / ROS 2 | Orientation (quaternion), angular velocity, and linear acceleration from an inertial measurement unit. |
IMU messages are rendered in the Plot panel, showing time-series charts of orientation, angular velocity, and linear acceleration components.
Auto-Detection Logic
Avala uses a two-step process to assign each topic to a panel type:
-
Schema name matching (primary) — The message schema name is checked against the known types listed above. For example, any topic with schema
sensor_msgs/PointCloud2 is assigned to a 3D panel regardless of its topic name.
-
Keyword matching (fallback) — If the schema name is not one of the built-in types above, Avala checks for keywords in the schema name and topic name:
| Keywords | Matched against | Assigned panel |
|---|
image, camera | Topic name | Image |
lidar, pointcloud, velodyne, points | Topic name | 3D / Point Cloud |
log, rosout | Schema or topic name | Log |
pose | Schema or topic name | 3D / Point Cloud |
transform, odometry | Schema name | 3D / Point Cloud |
odom, tf | Topic name | 3D / Point Cloud |
imu | Schema or topic name | Plot |
twist, vector3, float, int | Schema name | Plot |
cmd_vel, battery, temperature, sensor | Topic name | Plot |
navsat, gps | Schema or topic name | Map |
fix | Topic name | Map |
state | Schema or topic name | State |
Schema name matching (step 1) always takes precedence over keyword matching.
Unsupported Messages
Messages that do not match any known schema or keyword pattern are not discarded. They appear in the Raw Messages panel as a JSON tree view, allowing you to inspect their contents for debugging or data exploration.
If you need custom rendering for a proprietary message type, see Custom Schemas or contact support@avala.ai.
Always embed schema definitions in your MCAP file. This ensures reliable message decoding without external dependencies, especially for custom message types.