CoolFace
Datasetpublic

typoverflow/libero_plus_spatial

libero_plus_spatial: detailed LeRobot v3.0 This dataset was converted from the LIBERO Plus LeRobot v2.1 libero_plus_spatial partition. The original 8D state and 7D action vectors are preserved exactly as raw_state.ref_state and raw_action.ref_action. Canonical low-dimensional fields follow failure_rollout_data/dataset.md; debug.gripper_eef_* contains the ground-truth next-step relative EEF motion for inspection. Required camera transform for canonical training The… See the full description on the dataset page: https://huggingface.co/datasets/typoverflow/libero_plus_spatial.

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes51downloads
Dataset Card

liberoplusspatial: detailed LeRobot v3.0

This dataset was converted from the LIBERO Plus LeRobot v2.1 libero_plus_spatial partition. The original 8D state and 7D action vectors are preserved exactly as raw_state.ref_state and raw_action.ref_action. Canonical low-dimensional fields follow failure_rollout_data/dataset.md; debug.gripper_eef_* contains the ground-truth next-step relative EEF motion for inspection.

Required camera transform for canonical training

The source observation.images.front and observation.images.wrist videos are preserved unchanged. For canonical training, horizontally flip both camera views at load time. The videos in this repository are deliberately not rewritten or re-encoded.

The source-pipeline root cause is a composition of two image transforms: robosuite returns a vertically inverted render, and the original dataset writer then rotates it by 180 degrees (flips both image axes). The vertical flips cancel, leaving the stored image horizontally mirrored. This is also tracked in LeRobot issue #3830.

For an array whose layout ends in (height, width, channels):

python
image = np.flip(image, axis=-2)

For a tensor whose width is the last dimension, such as (..., channels, height, width):

python
image = torch.flip(image, dims=(-1,))

Apply the image transform only to the camera pixels. Do not flip or negate raw_state.*, raw_target.*, state.*, target.*, or debug.*; those fields remain proper right-handed coordinate representations.

Conversion notes

  • No frames were filtered. The historical LIBERO no-op predicate is audit-only; see meta/noop_audit.json and meta/noop_audit_episodes.jsonl.
  • Rotation and reconstruction checks are recorded in meta/conversion_validation.json.
  • Alignment and controller-scale assumptions are recorded in meta/conversion_config.json.
  • meta/stats.json includes q01 and q99 for every numeric and video feature. Numeric quantiles use every frame; video quantiles use a deterministic uniform sample of stored frames.