THULab/aaronsu11_so100_instrument
SO100 Instrument TsFile This dataset is an Apache TsFile conversion of aaronsu11/so100_instrument, a LeRobot v2.1 SO100 robot-manipulation dataset containing demonstrations for grabbing or picking up scissors and forceps. Modalities: Time-series. The converted repository contains numeric robot state, actions, frame timing, and episode/task tags. The two camera streams remain in the original Hugging Face dataset and are linked below. Source Dataset and Provenance… See the full description on the dataset page: https://huggingface.co/datasets/THULab/aaronsu11_so100_instrument.
SO100 Instrument TsFile
This dataset is an Apache TsFile conversion of `aaronsu11/so100_instrument`, a LeRobot v2.1 SO100 robot-manipulation dataset containing demonstrations for grabbing or picking up scissors and forceps.
Modalities: Time-series. The converted repository contains numeric robot state, actions, frame timing, and episode/task tags. The two camera streams remain in the original Hugging Face dataset and are linked below.
Source Dataset and Provenance
- Original dataset: `aaronsu11/so100_instrument`
- Pinned source revision: `32acf178fc1f70ba4649e36e083da6a91aa018b1`
- Original repository creator and uploader: Aaron Su (`aaronsu11`)
- License: Apache-2.0
- Robot type:
so100 - LeRobot codebase version:
v2.1 - Split:
train - Sampling rate: 30 fps
- Scale: 125 episodes, 25,882 frame rows, 4 tasks, 125 source Parquet files, 250 source videos
- 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
The source README embeds an older 85-episode copy of meta/info.json. At the pinned revision, the actual meta/info.json, Parquet tree, and video tree all describe the current 125-episode dataset; those files are authoritative here.
Tasks and Scale
Converted Files
- TsFile:
data/so100_instrument_train.tsfile - Table:
so100_instrument_train - Rows: 25,882
- Episodes/devices: 125
- TsFile size: 688,236 bytes (672 KiB)
- Time precision: milliseconds
- Metadata:
meta/is mirrored from the source, withmeta/info.jsonrewritten to describe the TsFile artifact and conversion mapping.
Encoding and compression
The TsFile uses a type-aware compact profile: Time and all INT64 fields use TS_2DIFF + LZ4; FLOAT fields use GORILLA + LZ4; and TAG values use the table-model device/tag mechanism with string tag segments. This reduces the converted file from 1,895,860 bytes in the previous PLAIN/UNCOMPRESSED build to 688,236 bytes. This snapshot has no BOOLEAN measurement columns.
TsFile Schema
Time is an INT64 millisecond timestamp computed as round(timestamp * 1000) and restarts for each episode.
TAG columns (stored as TsFile STRING tags while preserving the original INT64 source dtype in metadata):
episode_indextask_index
FIELD columns:
frame_indexsample_indexaction_0action_1action_2action_3action_4action_5observation_state_0observation_state_1observation_state_2observation_state_3observation_state_4observation_state_5
Flattened vector groups:
action->action_0...action_5(6 FLOAT fields)observation.state->observation_state_0...observation_state_5(6 FLOAT fields)
Conversion Notes
- The shared config-driven
lerobotconverter is used; the includedconvert_so100_instrument.pyis the dataset-specific orchestration and documentation entry point. - The train split is merged into one table-model TsFile. Filter by
episode_indexandtask_indexto select an episode or task. action[6]andobservation.state[6]are flattened to scalar FLOAT fields; the full source prefix is retained and.is replaced with_.- The source
timestampcolumn is dropped afterTimesynthesis because it is redundant withTime / 1000seconds. - The source
indexcolumn is retained assample_index;frame_indexis retained unchanged. - All 25,882 source rows and all 12 action/state dimensions are retained.
Videos
Videos are not duplicated in this converted repository. The pinned source contains two frame-aligned camera streams, each with 125 per-episode MP4 files:
- `observation.images.front` - 125 episode MP4 files
- `observation.images.wrist` - 125 episode MP4 files
The numeric TsFile rows remain aligned with the original videos through episode_index, frame_index, and the source per-episode metadata.
Minimal Read Example
from tsfile import TsFileReader
reader = TsFileReader("data/so100_instrument_train.tsfile")
table_name = "so100_instrument_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())
reader.close()Citation
The source dataset card provides no paper or completed citation. Cite the original Hugging Face dataset and Aaron Su (aaronsu11) when using this converted artifact.
