THULab/axiboai_piper_umi_tamping_after
Piper UMI Tamping TsFile This dataset is an Apache TsFile conversion of axiboai/piper_umi_tamping, a LeRobot v2.1 bimanual robot-manipulation dataset for tamping coffee beans. Modalities: Time-series. The converted repository contains numeric robot observations, actions, frame timing, episode/task tags, and mirrored source metadata. The two wrist-camera video streams remain in the original Hugging Face dataset. Source Dataset and Author Source dataset:… See the full description on the dataset page: https://huggingface.co/datasets/THULab/axiboai_piper_umi_tamping_after.
Piper UMI Tamping TsFile
This dataset is an Apache TsFile conversion of `axiboai/piper_umi_tamping`, a LeRobot v2.1 bimanual robot-manipulation dataset for tamping coffee beans.
Modalities: Time-series. The converted repository contains numeric robot observations, actions, frame timing, episode/task tags, and mirrored source metadata. The two wrist-camera video streams remain in the original Hugging Face dataset.
Source Dataset and Author
- Source dataset: `axiboai/piper_umi_tamping`
- Pinned source revision: `16d559b9281566b56ea0d3230a16553ee25c951f`
- Publishing organization: AXIBO (`axiboai`)
- Source uploader/contributor: Ishan Shah (`Ishan-Axibo`)
- Authorship evidence: the source repository's file history attributes the uploaded dataset tree to
Ishan-Axibo; the source card provides no separate formal author list. - License: Apache-2.0
- Robot type:
piperx_bimanual_eef_6d - LeRobot codebase version:
v2.1 - Task: Tamp the coffee beans.
- Split:
train - Scale: 101 episodes, 73,575 frames, 1 task, 30 fps
- Episode lengths: 511 to 1,623 frames (mean 728.47)
- Source frame files: 101 Parquet files under
data/chunk-000/ - Source frame layout:
data/chunk-{episode_chunk:03d}/episode_{episode_index:06d}.parquet - Source video layout:
videos/chunk-{episode_chunk:03d}/{video_key}/episode_{episode_index:06d}.mp4 - Paper/citation: not supplied by the source dataset card
Converted Files
- TsFile:
data/piper_umi_tamping_train.tsfile - Table:
piper_umi_tamping_train - Rows: 73,575
- Episodes/devices: 101
- Tasks: 1
- Time precision: milliseconds
- Metadata:
meta/is mirrored from the source, withmeta/info.jsonrewritten to describe the TsFile artifact and video policy.
TsFile Schema
Time is synthesized as round(timestamp * 1000) milliseconds and restarts from 0 for each episode.
TAG columns:
episode_indextask_index
Scalar FIELD columns:
frame_indexsample_index, renamed from source columnindex
Flattened FLOAT FIELD groups:
observation.state[20]->observation_state_0...observation_state_19action[20]->action_0...action_19
The source uses the same 20-dimensional order for state and action:
Conversion Notes
- The shared config-driven
lerobotconverter is used; the dataset-specific script atD:/code/scripts/convert_axiboai_piper_umi_tamping.pyis a thin local orchestration and validation entry point and is not part of the dataset upload. - The train split is merged into one table-model TsFile. Filter by
episode_indexandtask_indexto select an episode or task. - Vector columns are flattened to scalar TsFile fields. Full source prefixes are preserved, with
.replaced by_. - The source
timestampcolumn is dropped after Time synthesis because it is redundant withTime / 1000seconds. - Source
indexis renamed tosample_index;frame_indexis retained. - All 101 source Parquet schemas are identical, both vector widths are exactly 20, and no numeric row, episode, task, state dimension, or action dimension is dropped.
TsFile Encoding and Compression
The uploaded TsFile uses an explicit compact physical encoding profile:
- FLOAT/DOUBLE fields:
GORILLA + LZ4 - INT32/INT64 fields:
TS_2DIFF + LZ4 - Time:
TS_2DIFF + LZ4 - BOOLEAN fields (if present):
RLE + LZ4 - TAG values: TsFile table TAG/device mechanism, stored as
STRINGTAGs withPLAIN + LZ4
Videos
Videos are not duplicated in this converted repository. They remain under the original source revision's videos/chunk-000/ tree in two frame-aligned streams:
- `observation.images.cam_left_wrist`: 101 MP4 files, 1,042,773,741 bytes
- `observation.images.cam_right_wrist`: 101 MP4 files, 947,547,097 bytes
Together, the source contains 202 MP4 files totaling 1,990,320,838 bytes (about 1.85 GiB; Hugging Face displays 1.99 GB). Each stream contains one episode_XXXXXX.mp4 file per episode. Numeric rows remain aligned through episode_index, frame_index, and the source episode metadata. The source metadata describes 640x480 H.264 video at 30 fps without audio.
Validation
The generated TsFile was opened and fully queried with the Apache TsFile Java reader bundled with the conversion tools. Source, staged-Parquet, and TsFile readback row counts all equal 73,575. The file contains one table, 101 episode/task devices, 2 TAG columns, and 42 FIELD columns.
See VALIDATION.md and validation_report.json for hashes and exact checks.
Usage
from tsfile import TsFileReader
reader = TsFileReader("data/piper_umi_tamping_train.tsfile")
table_name = "piper_umi_tamping_train"
columns = [
"episode_index",
"task_index",
"frame_index",
"sample_index",
"action_0",
"observation_state_0",
]
with reader.query_table(table_name, columns, batch_size=65536) as result:
batch = result.read_arrow_batch()
print(batch.to_pandas().head())