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
Gripper/sensor/<eternal_id>/imusensor_msgs/msg/ImuLinear acceleration: m/s², angular velocity: rad/s
/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 configuration parameters of all current sensors (passed through from the frontend config).

status folder​

Contains one subdirectory per sensor, named by the sensor eternalid, 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: 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
Head VIO 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
Gripper pose/io/pose/Left_Gripper
/io/pose/Right_Gripper
geometry_msgs/msg/PoseArray
Localization tf/io/pose/tftf2_msgs/msg/TFMessageUnifies the head, gripper, and hand poses into a single TF coordinate frame
Gripper visualization/io/pose/Gripper/compressedsensor_msgs/msg/CompressedImageOptional debug visualization image
Depth visualization/io/depth/EgoCentric_Camera/color/compressedsensor_msgs/msg/CompressedImageOptional debug visualization image