k1000dai/libero_subtask_sarm
This dataset was created using LeRobot. SARM Subtask Annotations This is the LIBERO dataset (1693 episodes, 40 tasks) augmented with SARM dense_only subtask annotations. Each episode's high-level task instruction is decomposed into ordered atomic subtasks (from decompositions.json), and a vision-language model (Qwen/Qwen3-VL-8B-Instruct) localizes each subtask in time. Per-episode columns added to meta/episodes/*.parquet: dense_subtask_names, dense_subtask_start_times… See the full description on the dataset page: https://huggingface.co/datasets/k1000dai/libero_subtask_sarm.
This dataset was created using LeRobot.
SARM Subtask Annotations
This is the LIBERO dataset (1693 episodes, 40 tasks) augmented with [SARM](https://huggingface.co/docs/lerobot/sarm) dense_only subtask annotations. Each episode's high-level task instruction is decomposed into ordered atomic subtasks (from decompositions.json), and a vision-language model (Qwen/Qwen3-VL-8B-Instruct) localizes each subtask in time.
Per-episode columns added to meta/episodes/*.parquet:
dense_subtask_names,dense_subtask_start_times,dense_subtask_end_times,dense_subtask_start_frames,dense_subtask_end_frames— the fine-grained subtasks and their boundaries.sparse_subtask_*(and legacy unprefixedsubtask_*) — a single auto-generated"task"stage spanning the full episode.
Dataset-level priors in meta/:
temporal_proportions_sparse.json—{"task": 1.0}.temporal_proportions_dense.json— average temporal proportion per subtask name across the dataset.
Notes: 1674 episodes use VLM-localized boundaries; ~48 (the duplicate-subtask task "put both moka pots on the stove", plus a few where the VLM produced an off-count segmentation or failed) use a uniform-time split over the canonical subtask names. All dense subtask names match the decompositions.json vocabulary exactly. Train with lerobot-train --policy.type=sarm --policy.annotation_mode=dense_only --policy.image_key=observation.images.image.
Per-frame subtask_index (dataset_subtask format)
In addition to the SARM episode-level columns above, this dataset follows the Using Subtasks format:
meta/subtasks.parquet— maps each of the 52 unique subtask strings to asubtask_index(same layout astasks.parquet).- A per-frame
subtask_indexcolumn indata/chunk-*/file-*.parquet(added toinfo.jsonfeatures) — each frame is labeled with the dense subtask active at that frame (the most-recently-started subtask; idle trailing frames take the last subtask).
from lerobot.datasets import LeRobotDataset
ds = LeRobotDataset("k1000dai/libero_subtask_sarm") # or the local path
sample = ds[100]
sample["subtask_index"] # tensor(2)Note: resolving subtask_index → the natural-language subtask string at load time (dataset.meta.subtasks, sample["subtask"]) requires the LeRobot version documented in the page above; the on-disk format here is conformant and the subtask_index column loads on the current version.
Dataset Description
- Homepage: [More Information Needed]
- Paper: [More Information Needed]
- License: apache-2.0
Dataset Structure
meta/info.json:
{
"codebase_version": "v3.0",
"robot_type": "panda",
"total_episodes": 1693,
"total_frames": 273465,
"total_tasks": 40,
"chunks_size": 1000,
"fps": 10.0,
"splits": {
"train": "0:1693"
},
"data_path": "data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet",
"video_path": "videos/{video_key}/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4",
"features": {
"observation.images.image": {
"dtype": "image",
"shape": [
256,
256,
3
],
"names": [
"height",
"width",
"channel"
],
"fps": 10.0
},
"observation.images.image2": {
"dtype": "image",
"shape": [
256,
256,
3
],
"names": [
"height",
"width",
"channel"
],
"fps": 10.0
},
"observation.state": {
"dtype": "float32",
"shape": [
8
],
"names": [
"state"
],
"fps": 10.0
},
"action": {
"dtype": "float32",
"shape": [
7
],
"names": [
"actions"
],
"fps": 10.0
},
"timestamp": {
"dtype": "float32",
"shape": [
1
],
"names": null,
"fps": 10.0
},
"frame_index": {
"dtype": "int64",
"shape": [
1
],
"names": null,
"fps": 10.0
},
"episode_index": {
"dtype": "int64",
"shape": [
1
],
"names": null,
"fps": 10.0
},
"index": {
"dtype": "int64",
"shape": [
1
],
"names": null,
"fps": 10.0
},
"task_index": {
"dtype": "int64",
"shape": [
1
],
"names": null,
"fps": 10.0
}
},
"data_files_size_in_mb": 100,
"video_files_size_in_mb": 500
}Citation
BibTeX:
[More Information Needed]