Skip to main content

Data format

Capture side

Data uploaded to the platform or downloaded locally (mcap)

When you upload to the platform or download locally, the folder layout is as follows:

episode_000xx_yyyy_mm_dd_hh_mm_ss/
- episode_id_yyyy_mm_dd_hh_mm_ss_trimmed_timestamp_mcap_0.mcap
- metadata.yaml
- device_meta.json
- status/
- sensor_camera1/
- recorder.status
- sensor_camera2/
- recorder.status
...

episode_id_yyyy_mm_dd_hh_mm_ss_trimmed_timestamp_mcap_0.mcap

Topics and message types in the mcap:

Data sourceConverted topicMessage typeUnits / notes
Image/sensor/<eternal_id>/image/compressedsensor_msgs/msg/CompressedImageFormat: jpeg or h264
IMU/sensor/<eternal_id>/imusensor_msgs/msg/ImuLinear acceleration: m/s², angular velocity: rad/s
IMU/sensor/<eternal_id>/magsensor_msgs/msg/MagneticFieldMagnetic field: Tesla
Gripper/sensor/<eternal_id>/imusensor_msgs/msg/ImuLinear acceleration: m/s², angular velocity: rad/s
Gripper/sensor/<eternal_id>/magsensor_msgs/msg/MagneticFieldMagnetic field: Tesla
Gripper/sensor/<eternal_id>/joint_statessensor_msgs/msg/JointStatePosition:
1. <eternal_id>_rad (radians)
2. <eternal_id>_dist (meters)
Mic/sensor/<eternal_id>/audioaudio_common_msgs/msg/AudioDataStampedFormat: Raw PCM

metadata.yaml

metadata.yaml is written alongside mcap conversion and records:

  1. Core metadata

    • version: rosbag2 descriptor version
    • storage_identifier: storage backend type (usually mcap here)
    • relative_file_paths: paths to associated raw MCAP files (supports split volumes)
  2. Timing and statistics

    • starting_time: recording start time (usually Unix nanoseconds)
    • duration: total recording duration
    • message_count: total number of messages in the package
  3. Per-topic definitions

    • name: topic name (e.g. /chatter)
    • type: message type (e.g. std_msgs/msg/String)
    • serialization_format: serialization format (for ROS 2, usually cdr)
    • offered_qos_profiles: QoS used when the topic was published—important for consistent playback, including reliability and history depth.

device_meta.json

Records the current sensor configuration (passed through from the frontend config).

status folder

Contains one subdirectory per sensor, named by the sensor eternal_id, each with a recorder.status file describing that sensor’s stream output and disk write status for this recording.

Platform

Post-processing topic list

CategoryTopicMessage typeNotes
Raw: image/sensor/<eternal_id>/image/compressedsensor_msgs/msg/CompressedImage<eternal_id> typical values:
EgoCentric_Camera_0, EgoCentric_Camera_1
Left_Wrist_Camera_0, Right_Wrist_Camera_0
Left_Gripper_Camera_0, Right_Gripper_Camera_0
Raw: magnetometer/sensor/Left_Gripper_IntegratedPose/mag
/sensor/Right_Gripper_IntegratedPose/mag
/sensor/Head_IMU/mag
sensor_msgs/msg/MagneticField
Raw: IMU/sensor/Left_Gripper_IntegratedPose/imu
/sensor/Right_Gripper_IntegratedPose/imu
/sensor/Head_IMU/imu
sensor_msgs/msg/ImuLinear acceleration: m/s², angular velocity: rad/s
Rectified image/sensor/<eternal_id>/rect/compressedsensor_msgs/msg/CompressedImage<eternal_id> same typical values as raw image
Rectified image/sensor/<eternal_id>/rect/camera_infosensor_msgs/msg/CameraInfoIntrinsics for the rectified virtual camera
Head pose/io/pose/EgoCentric_Camera_0/trajvisualization_msgs/msg/Marker
Head pose/io/pose/EgoCentric_Camera_0geometry_msgs/msg/PoseStamped
Hand pose/io/pose/Left_Hand
/io/pose/Right_Hand
geometry_msgs/msg/PoseArray
Hand visualization/io/pose/Hand/compressedsensor_msgs/msg/CompressedImageOptional debug visualization image