THULab/unitreerobotics_G1_WBT_Brainco_Pickup_Pillow
Unitree G1 WBT BrainCo Pickup Pillow TsFile This repository is an Apache TsFile conversion of unitreerobotics/G1_WBT_Brainco_Pickup_Pillow, a LeRobot v3.0 robot-manipulation dataset for a Unitree G1 robot using BrainCo hands. The converted artifact contains the numeric robot time series and keeps episode/task identifiers as TsFile TAG columns. Source dataset and attribution Publisher/organization: Unitree Robotics (unitreerobotics); the source repository shows… See the full description on the dataset page: https://huggingface.co/datasets/THULab/unitreerobotics_G1_WBT_Brainco_Pickup_Pillow.
Unitree G1 WBT BrainCo Pickup Pillow TsFile
This repository is an Apache TsFile conversion of `unitreerobotics/G1_WBT_Brainco_Pickup_Pillow`, a LeRobot v3.0 robot-manipulation dataset for a Unitree G1 robot using BrainCo hands. The converted artifact contains the numeric robot time series and keeps episode/task identifiers as TsFile TAG columns.
Source dataset and attribution
- Publisher/organization: Unitree Robotics (
unitreerobotics); the source repository showskarthus198as its uploader/contributor. - Original dataset: `unitreerobotics/G1_WBT_Brainco_Pickup_Pillow`
- License: Apache-2.0
- Task: robotics / manipulation, picking up a pillow with the Unitree G1
- Framework and codebase version: LeRobot
v3.0 - Paper or formal citation: none is supplied on the original dataset card.
Dataset size and layout
- Split:
train(0:300episodes) - Episodes: 300
- Rows/frames: 177,811
- Tasks: 1 (
task_index = 0) - Sampling rate: 30 fps (source metadata)
- Source frame layout:
data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet - Source metadata:
meta/info.json,meta/stats.json,meta/tasks.parquet, andmeta/episodes/ - Converted artifact: one merged TsFile, one table, one data file
The local source copy contains one frame Parquet shard at data/chunk-000/file-000.parquet; the Hugging Face repository uses the same chunk/file pattern. The converted repository has one file: data/unitreerobotics_g1_wbt_brainco_pickup_pillow.tsfile.
Converted schema
Time is synthesized from the source timestamp as round(timestamp * 1000) in milliseconds. The source timestamp restarts at zero for each episode, so Time is monotonic within each (episode_index, task_index) group.
Vector fields are flattened row-major into scalar fields. Source dots are replaced with underscores and the original feature prefix is preserved.
Feature semantics from the source card
observation.state.ee_state[12]: concatenated left/right end-effector poses computed with forward kinematics, including waist motion.observation.state.hand_state[12]: BrainCo finger states for both hands; each hand is ordered thumb open/close, thumb lateral tilt, index, middle, ring, and little finger (range 0.0–1.0, open to close).observation.state.robot_q_current[36]: current robot configuration; the first seven values are root position(x, y, z)and quaternion(w, x, y, z), followed by 29 joint positions.action.ee_action[12]: target left/right end-effector states from FK, including waist motion.action.hand_cmd[12]: commanded BrainCo finger actions in the same order ashand_state.action.robot_q_desired[36]: desired configuration with target root pose in the first seven values and 29 target joint positions thereafter.
Conversion and storage policy
timestampis dropped after lossless conversion toTime; it equalsTime / 1000seconds.indexis renamed tosample_index;frame_index,episode_index, andtask_indexare preserved.- Rows are sorted by TAG columns and then
Time. - FLOAT/DOUBLE:
GORILLA + LZ4 - INT32/INT64:
TS_2DIFF + LZ4 - Time:
TS_2DIFF + LZ4 - BOOLEAN:
RLE + LZ4(the source has no BOOLEAN columns) - TAG values use TsFile table-model device/tag storage.
- No numeric rows or vector components are dropped.
Videos and frame alignment
The original Hugging Face repository stores videos separately from the numeric Parquet data. The four source streams are:
videos/observation.images.head_stereo_left/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4videos/observation.images.head_stereo_right/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4videos/observation.images.wrist_left/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4videos/observation.images.wrist_right/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4
See the original video tree. Videos are not included in this TsFile repository. Use the unchanged source videos and align them with the converted rows using episode_index and frame_index.
Validation
The local conversion report confirms 177,811 source rows are preserved, no duplicate (episode_index, task_index, Time) keys are present, and Time is monotonic within each episode. The generated .json and .md reports and the conversion script remain local and are intentionally excluded from upload.
Minimal read example
from tsfile import TsFileReader
path = "data/unitreerobotics_g1_wbt_brainco_pickup_pillow.tsfile"
reader = TsFileReader(path)
table_name = "unitreerobotics_g1_wbt_brainco_pickup_pillow"
schemas = reader.get_all_table_schemas()
columns = [
c.get_column_name()
for c in schemas[table_name].get_columns()
if c.get_column_name() != "Time"
]
with reader.query_table(table_name, columns, batch_size=65536) as result:
first_batch = result.read_arrow_batch()