Skip to main content
The data types module defines core data structures, enums, and configurations used throughout the GR00T data pipeline.

Enums

MessageType

Defines the type of message in the VLA data pipeline.
str
Value: "start_of_episode". Marks the beginning of an episode.
str
Value: "end_of_episode". Marks the end of an episode.
str
Value: "episode_step". Contains VLAStepData for a single timestep.
str
Value: "image". Contains image data.
str
Value: "text". Contains text/language data.

ActionRepresentation

Defines how actions are represented.
str
Value: "relative". Actions relative to current state.
str
Value: "delta". Change in state.
str
Value: "absolute". Absolute target state.

ActionType

Defines whether actions are end-effector or non-end-effector.
str
Value: "eef". End-effector actions (Cartesian space).
str
Value: "non_eef". Non-end-effector actions (joint space).

ActionFormat

Defines the format of action representation.
str
Value: "default". Default action format.
str
Value: "xyz+rot6d". 3D position + 6D rotation representation.
str
Value: "xyz+rotvec". 3D position + rotation vector.

Data structures

VLAStepData

Represents a single step of VLA (Vision-Language-Action) data. This is the core data structure returned by datasets, containing raw observation and action data that will be processed by the SequenceVLAProcessor.
dict[str, list[np.ndarray]]
required
Dictionary mapping view names to lists of image arrays for temporal stacking.Example: {"front_cam": [np.ndarray], "wrist_cam": [np.ndarray]}
dict[str, np.ndarray]
required
Dictionary mapping state names to numpy arrays. For single step: shape (dim,). For trajectory: shape (horizon, dim).Example: {"joint_positions": np.ndarray, "gripper_state": np.ndarray}
dict[str, np.ndarray]
required
Dictionary mapping action names to numpy arrays with shape (horizon, dim) for action chunking.Example: {"joint_velocities": np.ndarray}
str | None
default:"None"
Optional task description or instruction.
EmbodimentTag
default:"EmbodimentTag.NEW_EMBODIMENT"
Embodiment tag for cross-embodiment training.
bool
default:"False"
Whether the step is a demonstration. If True, no loss should be computed for this step.
dict[str, Any]
default:"{}"
Flexible metadata that can be extended by users.

Usage example

ActionConfig

Configuration for action representation and control.
ActionRepresentation
required
Action representation type (relative, delta, or absolute).
ActionType
required
Action type (end-effector or non-end-effector).
ActionFormat
required
Action format (default, xyz+rot6d, or xyz+rotvec).
str | None
default:"None"
Optional state key for computing relative actions.

Usage example

ModalityConfig

Configuration for a modality defining how data should be sampled and loaded. This class specifies which indices to sample relative to a base index and which keys to load for a particular modality (e.g., video, state, action).
list[int]
required
Delta indices to sample relative to the current index. The returned data will correspond to the original data at a sampled base index + delta indices.Example: [0] for single timestep, [-1, 0] for current and previous, list(range(16)) for 16-step action chunk.
list[str]
required
The keys to load for the modality in the dataset.Example: ["front_cam", "wrist_cam"] for video, ["joint_positions", "gripper_state"] for state.
list[str] | None
default:"None"
Optional list of keys to apply sin/cos encoding. If None or empty, use min/max normalization for all keys.
list[str] | None
default:"None"
Optional list of keys to apply mean/std normalization. If None or empty, use min/max normalization for all keys.
list[ActionConfig] | None
default:"None"
Optional list of ActionConfig objects, one per modality key. Must match the number of modality_keys if provided.

Usage example