CoolFace
Datasetpublic

THULab/unitreerobotics_G1_Dex3_BlockStacking_Dataset

G1 Dex3 Block Stacking TsFile This repository is an Apache TsFile conversion of unitreerobotics/G1_Dex3_BlockStacking_Dataset, a LeRobot manipulation dataset for stacking three cubic blocks on a desktop in red, yellow, and blue order. Source dataset Original dataset: https://huggingface.co/datasets/unitreerobotics/G1_Dex3_BlockStacking_Dataset Author / repository owner: Unitree Robotics (unitreerobotics) Source-tree contributors shown by Hugging Face: Henry-Ellis… See the full description on the dataset page: https://huggingface.co/datasets/THULab/unitreerobotics_G1_Dex3_BlockStacking_Dataset.

sourceHugging Faceapache-2.0updated 17d agoView on Hugging Face
0likes41downloads
Dataset Card

G1 Dex3 Block Stacking TsFile

This repository is an Apache TsFile conversion of `unitreerobotics/G1_Dex3_BlockStacking_Dataset`, a LeRobot manipulation dataset for stacking three cubic blocks on a desktop in red, yellow, and blue order.

Source dataset

  • —Original dataset: https://huggingface.co/datasets/unitreerobotics/G1Dex3BlockStacking_Dataset
  • —Author / repository owner: Unitree Robotics (unitreerobotics)
  • —Source-tree contributors shown by Hugging Face: Henry-Ellis, lv-1
  • —License: Apache-2.0
  • —Robot: Unitree G1, 7-DOF dual-arm, with three-finger Dex3 hands
  • —Recording frequency: 30 Hz
  • —Cameras: two head-mounted streams (cam_left_high, cam_right_high) and two wrist-mounted streams (cam_left_wrist, cam_right_wrist)
  • —Resolution: 640x480 RGB; source video codec is AV1
  • —Split: train (0:301 episodes)
  • —Episodes / rows / tasks: 301 / 281,196 / 1
  • —Source data shards: 1 chunk / 1 Parquet file; source card reports 1,204 video files
  • —Source frame file: data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet

The task description in the original card is to stack three 5 cm cubic blocks on black tape on the desktop from bottom to top in red, yellow, and blue order.

Converted files

  • —TsFile: data/unitreerobotics_g1_dex3_blockstacking.tsfile
  • —Table: unitreerobotics_g1_dex3_blockstacking
  • —Rows: 281,196
  • —Episodes: 301
  • —Episode files: 1 merged table-model TsFile
  • —Time precision: milliseconds
  • —Source metadata: meta/tasks.parquet, meta/episodes/..., and meta/stats.json are retained; meta/info.json documents the conversion.

Schema

RoleColumns
TIMETime (INT64 timestamp, milliseconds)
TAG / device metadataepisode_index, task_index (original source names)
FIELDframe_index, sample_index (renamed from source index)
FIELD FLOATobservation_state_0 ... observation_state_27
FIELD FLOATaction_0 ... action_27

Time = round(timestamp * 1000). The source timestamp is in seconds and restarts at zero for each episode, so Time is monotonic within each (episode_index, task_index) device. The source timestamp column is dropped after synthesis because it is redundant with Time / 1000.

Vector columns are flattened row-major while preserving source prefixes:

  • —observation.state[28] -> observation_state_0 ... observation_state_27
  • —action[28] -> action_0 ... action_27

The source index is renamed to sample_index; frame_index, episode_index, and task_index are preserved. No numeric state/action rows are dropped. Image/video feature columns are not written into TsFile because the local source Parquet contains numeric references only.

Encoding and compression

The compact TsFile profile is used to avoid producing a file larger than the source Parquet:

  • —FLOAT/DOUBLE: GORILLA + LZ4
  • —INT32/INT64: TS_2DIFF + LZ4
  • —Time: TS_2DIFF + LZ4
  • —BOOLEAN: RLE + LZ4 (no BOOLEAN fields are present in this dataset)
  • —TAG columns: TsFile table/device TAG mechanism

The staged Parquet and local validation report are kept outside the upload set under .conversion_work/.

Videos and attribution

Videos are not included in this TsFile repository. They remain in the original Hugging Face dataset at:

The source metadata video pattern is videos/{video_key}/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4. episode_index and frame_index remain unchanged in the TsFile so consumers can align a time-series row with its original video frame.

Read example

python
import sys
sys.path.insert(0, r"D:\\code\\.deps")
from tsfile import TsFileReader

path = r"D:\\code\\py\\unitreerobotics_G1_Dex3_BlockStacking_Dataset\\data\\unitreerobotics_g1_dex3_blockstacking.tsfile"
reader = TsFileReader(path)
table = reader.get_all_table_schemas()["unitreerobotics_g1_dex3_blockstacking"]
columns = [c.get_column_name() for c in table.get_columns() if c.get_column_name() != "Time"]
with reader.query_table("unitreerobotics_g1_dex3_blockstacking", columns, batch_size=65536) as result:
    batch = result.read_arrow_batch()

Citation

Please cite the original Unitree Robotics dataset repository and the LeRobot project when using this conversion. No separate paper or BibTeX entry was provided in the source dataset card.