THULab/idm_openarm_merged_256_v2
idm_openarm_merged_256_v2 (TsFile) Apache TsFile version of glory-hyeok/idm-openarm-merged-256-v2. Overview A LeRobot robot dataset recorded on a openarm_rh56f1 arm. Task(s): 0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15. Each frame holds the commanded action and observed observation.state joint positions, plus camera views stored as videos in the original dataset. Episodes: 1156 Frames: 492,920 Sampling rate: 20 fps Tasks: 16 — "0; 1; 2; 3; 4; 5; 6; 7; 8;… See the full description on the dataset page: https://huggingface.co/datasets/THULab/idm_openarm_merged_256_v2.
idmopenarmmerged256v2 (TsFile)
Apache TsFile version of `glory-hyeok/idm-openarm-merged-256-v2`.
Overview
A LeRobot robot dataset recorded on a openarm_rh56f1 arm. Task(s): 0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15. Each frame holds the commanded action and observed observation.state joint positions, plus camera views stored as videos in the original dataset.
- Episodes: 1156
- Frames: 492,920
- Sampling rate: 20 fps
- Tasks: 16 — "0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15"
Schema (TsFile structure)
All episodes share one TsFile with episode_index and task_index as TAG columns; query a single episode with WHERE episode_index = N.
- Time (INT64, milliseconds) —
round(timestamp * 1000); the sourcetimestampcolumn is dropped (it equals Time / 1000). - episode_index (TAG) — device dimension.
- task_index (TAG) — device dimension.
- episode_index (INT64) — measurement.
- task_index (INT64) — measurement.
- frame_index (INT64) — measurement.
- sample_index (INT64) — measurement.
- language_instruction (STRING) — measurement.
- next_done (INT64) — measurement.
- next_success (INT64) — measurement.
- observation_state_0 (FLOAT) — measurement.
- observation_state_1 (FLOAT) — measurement.
- observation_state_2 (FLOAT) — measurement.
- observation_state_3 (FLOAT) — measurement.
- observation_state_4 (FLOAT) — measurement.
- observation_state_5 (FLOAT) — measurement.
- observation_state_6 (FLOAT) — measurement.
- observation_state_7 (FLOAT) — measurement.
- observation_state_8 (FLOAT) — measurement.
- observation_state_9 (FLOAT) — measurement.
- observation_state_10 (FLOAT) — measurement.
- observation_state_11 (FLOAT) — measurement.
- observation_state_12 (FLOAT) — measurement.
- observation_state_13 (FLOAT) — measurement.
- observation_state_14 (FLOAT) — measurement.
- observation_state_15 (FLOAT) — measurement.
- observation_state_16 (FLOAT) — measurement.
- observation_state_17 (FLOAT) — measurement.
- observation_state_18 (FLOAT) — measurement.
- observation_state_19 (FLOAT) — measurement.
- observation_state_20 (FLOAT) — measurement.
- observation_state_21 (FLOAT) — measurement.
- observation_state_22 (FLOAT) — measurement.
- observation_state_23 (FLOAT) — measurement.
- observation_state_24 (FLOAT) — measurement.
- observation_state_25 (FLOAT) — measurement.
- observation_state_26 (FLOAT) — measurement.
- observation_state_27 (FLOAT) — measurement.
- action_0 (FLOAT) — measurement.
- action_1 (FLOAT) — measurement.
- action_2 (FLOAT) — measurement.
- action_3 (FLOAT) — measurement.
- action_4 (FLOAT) — measurement.
- action_5 (FLOAT) — measurement.
- action_6 (FLOAT) — measurement.
- action_7 (FLOAT) — measurement.
- action_8 (FLOAT) — measurement.
- action_9 (FLOAT) — measurement.
- action_10 (FLOAT) — measurement.
- action_11 (FLOAT) — measurement.
- action_12 (FLOAT) — measurement.
- action_13 (FLOAT) — measurement.
- action_14 (FLOAT) — measurement.
- action_15 (FLOAT) — measurement.
- action_16 (FLOAT) — measurement.
- action_17 (FLOAT) — measurement.
- action_18 (FLOAT) — measurement.
- action_19 (FLOAT) — measurement.
- action_20 (FLOAT) — measurement.
- action_21 (FLOAT) — measurement.
- action_22 (FLOAT) — measurement.
- action_23 (FLOAT) — measurement.
- action_24 (FLOAT) — measurement.
- action_25 (FLOAT) — measurement.
- action_26 (FLOAT) — measurement.
- action_27 (FLOAT) — measurement.
- torque_0 (FLOAT) — measurement.
- torque_1 (FLOAT) — measurement.
- torque_2 (FLOAT) — measurement.
- torque_3 (FLOAT) — measurement.
- torque_4 (FLOAT) — measurement.
- torque_5 (FLOAT) — measurement.
- torque_6 (FLOAT) — measurement.
- torque_7 (FLOAT) — measurement.
- torque_8 (FLOAT) — measurement.
- torque_9 (FLOAT) — measurement.
- torque_10 (FLOAT) — measurement.
- torque_11 (FLOAT) — measurement.
- torque_12 (FLOAT) — measurement.
- torque_13 (FLOAT) — measurement.
The vector columns are flattened per joint:
action_*— commanded joints: openarmheadpitchPos, openarmheadyawPos, openarmleftjoint1Pos, openarmleftjoint2Pos, openarmleftjoint3Pos, openarmleftjoint4Pos, openarmleftjoint5Pos, openarmleftjoint6Pos, openarmleftjoint7Pos, openarmrightjoint1Pos, openarmrightjoint2Pos, openarmrightjoint3Pos, openarmrightjoint4Pos, openarmrightjoint5Pos, openarmrightjoint6Pos, openarmrightjoint7Pos, lefthandthumb1jointPos, lefthandthumb2jointPos, lefthandindex1jointPos, lefthandmiddle1jointPos, lefthandring1jointPos, lefthandlittle1jointPos, righthandthumb1jointPos, righthandthumb2jointPos, righthandindex1jointPos, righthandmiddle1jointPos, righthandring1jointPos, righthandlittle1jointPos.observation_state_*— observed joints: openarmheadpitchPos, openarmheadyawPos, openarmleftjoint1Pos, openarmleftjoint2Pos, openarmleftjoint3Pos, openarmleftjoint4Pos, openarmleftjoint5Pos, openarmleftjoint6Pos, openarmleftjoint7Pos, openarmrightjoint1Pos, openarmrightjoint2Pos, openarmrightjoint3Pos, openarmrightjoint4Pos, openarmrightjoint5Pos, openarmrightjoint6Pos, openarmrightjoint7Pos, lefthandthumb1jointPos, lefthandthumb2jointPos, lefthandindex1jointPos, lefthandmiddle1jointPos, lefthandring1jointPos, lefthandlittle1jointPos, righthandthumb1jointPos, righthandthumb2jointPos, righthandindex1jointPos, righthandmiddle1jointPos, righthandring1jointPos, righthandlittle1jointPos.
Usage
Install the Apache TsFile Python SDK (pip install tsfile) and read a converted file:
from pathlib import Path
from tsfile import TsFileReader
path = Path("data/idm_openarm_merged_256_v2.tsfile")
with TsFileReader(str(path)) as reader:
schemas = reader.get_all_table_schemas()
print("tables:", list(schemas))
table_name = next(iter(schemas))
table = schemas[table_name]
columns = [column.get_column_name() for column in table.get_columns()]
print("columns:", columns)
field_names = [
column.get_column_name()
for column in table.get_columns()
if column.get_column_name() not in {"Time", "time"}
]
if field_names:
with reader.query_table(table_name, field_names[:3], batch_size=1024) as result:
batch = result.read_arrow_batch()
if batch is not None:
print(batch.to_pandas().head())Source & license
- Original dataset: https://huggingface.co/datasets/glory-hyeok/idm-openarm-merged-256-v2
- Author / publisher: glory-hyeok
- License: apache-2.0
- Note: camera videos are NOT included; see the original dataset.
