CoolFace
Datasetpublic

THULab/chess_game_004_white

chess_game_004_white (TsFile) This dataset is an Apache TsFile conversion of Chojins/chess_game_004_white, a LeRobot robotics dataset for moving blue chess pieces according to highlighted squares. Source Dataset Original dataset: Chojins/chess_game_004_white License: apache-2.0 Source task category: robotics Source tags: LeRobot, chess, game LeRobot codebase version: v2.1 in downloaded meta/info.json Robot type: SO100 Episodes: 50 Frames: 23,035 Tasks: 1 Task:… See the full description on the dataset page: https://huggingface.co/datasets/THULab/chess_game_004_white.

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
0likes34downloads
Dataset Card

chessgame004_white (TsFile)

This dataset is an Apache TsFile conversion of `Chojins/chess_game_004_white`, a LeRobot robotics dataset for moving blue chess pieces according to highlighted squares.

Source Dataset

  • —Original dataset: `Chojins/chess_game_004_white`
  • —License: apache-2.0
  • —Source task category: robotics
  • —Source tags: LeRobot, chess, game
  • —LeRobot codebase version: v2.1 in downloaded meta/info.json
  • —Robot type: SO100
  • —Episodes: 50
  • —Frames: 23,035
  • —Tasks: 1
  • —Task: Move the blue chess pieces as indicated by the highlighted squares
  • —FPS: 30
  • —Source data path: data/chunk-{episode_chunk:03d}/episode_{episode_index:06d}.parquet
  • —Source video path: videos/chunk-{episode_chunk:03d}/{video_key}/episode_{episode_index:06d}.mp4
  • —Source video streams: observation.images.laptop and observation.images.phone, both 480x640 RGB AV1 videos at 30 fps.

Converted Data

  • —TsFile: data/chess_game_004_white.tsfile
  • —Table name: chess_game_004_white
  • —Rows converted: 23,035
  • —Episode count: 50
  • —Time precision: milliseconds
  • —Time mapping: Time = round(timestamp * 1000), restarting per episode
  • —TAG columns: episode_index, task_index
  • —Videos are not included in this repository. Use the original dataset's `videos/` directory for visual streams.

Schema Mapping

Source columnConverted column(s)RoleNotes
timestampTimeTIMEConverted from seconds to integer milliseconds and not retained as a duplicate field.
episode_indexepisode_indexTAGSource episode index.
task_indextask_indexTAGSource task index.
frame_indexframe_indexFIELDSource frame index.
indexsample_indexFIELDRenamed to avoid generic index naming.
actionaction_0 ... action_5FIELDFlattened float32 vector.
observation.stateobservation_state_0 ... observation_state_5FIELDFlattened float32 vector.
observation.images.laptopomittedvideoNot converted or uploaded; available in the source dataset.
observation.images.phoneomittedvideoNot converted or uploaded; available in the source dataset.

The six action/state dimensions follow the source feature names: main_shoulder_pan, main_shoulder_lift, main_elbow_flex, main_wrist_flex, main_wrist_roll, and main_gripper.

Conversion Notes

  • —The source LeRobot parquet episodes were merged into one TsFile table. Episodes remain queryable through the source TAG columns episode_index and task_index.
  • —Vector columns preserve the full source column name when flattened: . is replaced with _, and the element index is appended.
  • —The source timestamp column is dropped because it is redundant with Time / 1000 seconds.
  • —meta/ is mirrored from the source, with meta/info.json updated so data_path points to the converted TsFile and tsfile_conversion documents the mapping.
  • —No source numeric rows were dropped. Local validation confirmed 23,035 staged rows and 23,035 TsFile metadata rows.

Minimal Read Example

python
from tsfile import TsFileReader
from tsfile import tag_eq

path = "data/chess_game_004_white.tsfile"
reader = TsFileReader(path)

# Inspect table schemas.
print(reader.get_all_table_schemas().keys())

# Query numeric fields. To focus on one episode, pass a tag filter such as
# tag_filter=tag_eq("episode_index", "0") if supported by your SDK version.
with reader.query_table(
    "chess_game_004_white",
    ["frame_index", "sample_index", "action_0", "action_1", "observation_state_0"],
    batch_size=1024,
) as rs:
    batch = rs.read_arrow_batch()
    print(batch)

reader.close()