Use MCAP Format
MCAP is the recommended container format for multi-sensor recordings. It has the lowest container overhead of any robotics recording format and supports all major serialization frameworks.| Format | Overhead | Serialization Support | Schema Embedded |
|---|---|---|---|
| MCAP | Minimal | Protobuf, JSON, ROS 1, ROS 2, Flatbuffers | Yes |
| ROS 1 Bag | Moderate | ROS 1 only | Yes |
| ROS 2 Bag | Moderate (SQLite) | ROS 2 only | Yes |
Include Transform Messages
Avala resolves coordinate frames from TF messages in your recording. Without transforms, the viewer cannot project LiDAR onto camera images or align sensors in the 3D view. Record both static and dynamic transform topics:| Topic | Message Type | Purpose |
|---|---|---|
/tf_static | tf2_msgs/TFMessage | Fixed sensor mounting positions (published once) |
/tf | tf2_msgs/TFMessage | Dynamic transforms (vehicle odometry, joint states) |
Verify Your Transform Tree
Before uploading, check that your recording contains a complete transform chain from the LiDAR frame to each camera frame:Record Compressed Images
Uncompressed images dramatically increase file size and upload time. Use compressed image topics whenever possible.| Format | Typical Size (1920x1080) | Recommended |
|---|---|---|
sensor_msgs/Image (raw) | ~6 MB per frame | No |
sensor_msgs/CompressedImage (JPEG) | ~200-400 KB per frame | Yes |
foxglove.CompressedImage (JPEG) | ~200-400 KB per frame | Yes |
JPEG compression at quality 85-95% is visually lossless for most annotation tasks. Lower quality (below 80%) may introduce artifacts that affect annotation accuracy, especially for small objects and fine boundaries.
Use Consistent Topic Naming
Consistent naming makes it easier to manage recordings across vehicles, sessions, and time periods. The viewer’s auto-detection works best with predictable topic names. Recommended naming convention:| Topic | Sensor |
|---|---|
/sensors/camera/front/compressed | Front camera (compressed image) |
/sensors/camera/front/camera_info | Front camera intrinsics |
/sensors/lidar/top/points | Top LiDAR point cloud |
/sensors/imu/data | IMU readings |
/sensors/gps/fix | GPS position |
Set Accurate Timestamps
Avala uses message timestamps (theheader.stamp field in ROS messages) for synchronization across panels. All sensors in a recording must share a common time reference for the viewer to align them correctly.
Timestamp Best Practices
- Use a hardware time sync (PTP or GPS-disciplined clock) to synchronize sensor clocks before recording
- Set
header.stampto capture time, not publish time — the timestamp should reflect when the sensor observation occurred, not when the message was sent - Avoid using
rospy.Time.now()orrclpy.clockfor sensor timestamps unless the system clock is synchronized to the sensor clock
Clock Skew
If sensors have different clocks and timestamps drift apart, the viewer will display data from different real-world moments in the same frame. Common symptoms:- Camera images appear to “lag” behind LiDAR data
- LiDAR projection is offset from where objects appear in the image
- Object positions jump when stepping frame-by-frame
Embed Schema Definitions
MCAP files can embed schema definitions alongside the data. When schemas are embedded, Avala can decode messages without any external schema files. For Protobuf messages, embed the.proto file descriptor set when writing the MCAP. Most MCAP writer libraries (C++, Python, Go) include schema embedding by default — check your recording library’s documentation to confirm it is enabled.
For ROS messages, schemas are embedded by default in both .bag and .db3 formats. When converting to MCAP, use the mcap convert command to preserve them.
If schemas are not embedded, the viewer falls back to keyword-based topic detection and may assign incorrect panel types. Embedding schemas ensures reliable decoding and correct panel assignment.
File Size Guidelines
| Data Type | Recommendation |
|---|---|
| MCAP | Keep recordings under a few GB per file. Split long recordings into shorter segments. |
| Point Cloud (PCD/PLY) | Downsample dense scans if file sizes exceed a few hundred MB. |
| Video (MP4/MOV) | Split long videos into shorter clips. |
| Image (JPEG/PNG/WebP) | Use JPEG for photos, PNG for synthetic data. |
Refer to the mcap CLI documentation for tools to inspect and split MCAP files.
Naming Conventions for Multi-Vehicle Datasets
When collecting data across a fleet, adopt a naming convention that encodes key metadata:Pre-Upload Checklist
Before uploading recordings to Avala, verify:- Recording is in MCAP format (or ROS bag for automatic conversion)
-
/tf_staticand/tftopics are present with complete transform chains - Camera images use compressed format (
CompressedImage) -
CameraInfomessages are published for each camera topic - Message timestamps are accurate and synchronized across sensors
- Schema definitions are embedded in the MCAP file
- Large recordings are split into shorter segments for faster processing
- Topic names follow a consistent naming convention
Next Steps
MCAP & ROS Overview
Supported formats, message types, and the full upload workflow.
Multi-Camera Setup
Configure camera streams with calibration data for cross-view projection.
Data Types
Supported data types, annotation tools, and upload requirements.
Cloud Storage
Connect your S3 or GCS bucket for large-scale data ingestion.