Metadata
Episode-level session metadata is published on a single topic. The message carries rig and capture info, global time range, optional location, task/scene identifiers, and operator info.
Topic & Message Type
- Topic:
/session/metadata - Message type:
session.metadata.SessionMetadata - Encoding:
protobuf
Defined in session/metadata.proto; all messages include common.header.Header.
Message definition (metadata, one message per session):
syntax = "proto3";
package session.metadata;
import "common/header.proto";
message Resolution {
uint32 width = 1;
uint32 height = 2;
}
message CaptureDevice {
string device_type = 1;
string firmware_version = 2;
string fps = 3;
string modality = 4;
Resolution resolution = 5;
int64 unix_start_time_ms = 6;
int64 unix_end_time_ms = 7;
}
message GlobalTime {
string start_time_iso = 1;
string end_time_iso = 2;
string timezone = 3;
}
message Location {
optional double latitude = 1;
optional double longitude = 2;
string coordinate_system = 3;
}
message TaskInfo {
string episode_uuid = 1;
string task_description = 2;
string task_name = 3;
string environment_id = 4;
string scene_id = 5;
string environment_description = 6;
string scene_description = 7;
bool has_tool_use = 8;
bool has_tool_use_significant = 9;
string meta_session_id = 10;
uint32 meta_session_index = 11;
}
message OperatorInfo {
double height = 1;
double arm_span = 2;
double leg_length = 3;
string unit = 4;
}
message Operator {
string operator_id = 1;
OperatorInfo operator_info = 2;
}
// Main message for topic /session/metadata
message SessionMetadata {
common.header.Header header = 1;
repeated CaptureDevice devices = 2;
GlobalTime global_time = 3;
Location location = 4;
TaskInfo task_info = 5;
Operator operator = 6;
}