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