zfff/sroiv2_strawberry_picking_lab_validation
This dataset was created using LeRobot. SROI v2 — Strawberry Picking (Lab) — Validation Set Held-out validation set for the SROI v2 strawberry-picking data (project page, Zhejiang University): 100 human strawberry-picking demonstrations recorded with the SROI V2 handheld data-acquisition device — a UMI-style gripper with an integrated Intel RealSense D405 stereo camera — on live plants in a laboratory setup. No robot arm is involved during collection: the 7-DoF… See the full description on the dataset page: https://huggingface.co/datasets/zfff/sroiv2_strawberry_picking_lab_validation.
This dataset was created using LeRobot.
<a class="flex" href="https://huggingface.co/spaces/lerobot/visualizedataset?path=zfff/sroiv2strawberrypickinglab_validation"> <img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/badges/resolve/main/visualize-this-dataset-xl.svg"/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/badges/resolve/main/visualize-this-dataset-xl-dark.svg"/> </a>
SROI v2 — Strawberry Picking (Lab) — Validation Set
Held-out validation set for the SROI v2 strawberry-picking data (project page, Zhejiang University): 100 human strawberry-picking demonstrations recorded with the SROI V2 handheld data-acquisition device — a UMI-style gripper with an integrated Intel RealSense D405 stereo camera — on live plants in a laboratory setup. No robot arm is involved during collection: the 7-DoF end-effector actions are recovered off-line (ORB-SLAM3 stereo SLAM with gripper mask for the device trajectory; AprilTags for the gripper opening), and the learned policy is deployed on a robot arm carrying the same end effector, whose camera viewpoint is identical to the one in these recordings.
- Task:
pick the strawberry(single task, all 100 episodes) - Collection: human demonstrations with the SROI V2 handheld device (UMI-style — not recorded on a robot arm)
- Camera: Intel RealSense D405 mounted on the device (18 mm stereo baseline, zero distortion), 480×640 RGB, 30 fps, first-person view
- Project: agroboticsresearch.github.io/sroi_v2 · all SROI datasets
- Paper: arXiv:2501.16717
- Training counterpart: `zfff/sroiv2_strawberry_picking_lab_1459_occlusion`
This collection was recorded on a different day (2026-07-14) than the training recordings (2026-07-09 onward), so there is no episode leakage between train and validation. Task, fps, and schema are identical, so it drops in as a validation holdout.
Quickstart
from lerobot.datasets.lerobot_dataset import LeRobotDataset
dataset = LeRobotDataset("zfff/sroiv2_strawberry_picking_lab_validation")
episode = dataset[0] # dict with "observation.images.camera", "action", ...Dataset Summary
Processing
Recorded MP4s → frame decode → ORB-SLAM3 stereo trajectory estimation (with gripper mask) → trajectory transform → AprilTag-based gripper pose estimation (median filter 3) → visual QC → LeRobot conversion.
- All 100 recorded episodes passed visual QC (
okrating, 100 kept / 0 dropped). - The masked-SLAM processing matches the training pipeline, so train and validation trajectories are directly comparable.
- The gripper position channel is normalized to
[0, 1]with one robust pooled range across these 100 episodes. - Per-episode camera intrinsics are preserved under
meta/camera_info/.
Dataset Structure
meta/info.json:
{
"codebase_version": "v3.0",
"fps": 30,
"features": {
"observation.images.camera": {
"dtype": "video",
"shape": [480, 640, 3],
"names": ["height", "width", "channels"],
"info": {
"video.height": 480,
"video.width": 640,
"video.codec": "av1",
"video.pix_fmt": "yuv420p",
"video.is_depth_map": false,
"video.fps": 30,
"video.channels": 3,
"has_audio": false
}
},
"action": {
"dtype": "float32",
"names": ["ee.x", "ee.y", "ee.z", "ee.wx", "ee.wy", "ee.wz", "ee.gripper_pos"],
"shape": [7]
},
"timestamp": {"dtype": "float32", "shape": [1], "names": null},
"frame_index": {"dtype": "int64", "shape": [1], "names": null},
"episode_index": {"dtype": "int64", "shape": [1], "names": null},
"index": {"dtype": "int64", "shape": [1], "names": null},
"task_index": {"dtype": "int64", "shape": [1], "names": null}
},
"total_episodes": 100,
"total_frames": 9274,
"total_tasks": 1,
"chunks_size": 1000,
"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",
"robot_type": "so100",
"splits": {"train": "0:100"}
}Note:robot_type: "so100"inmeta/info.jsonis a hardcoded default of the conversion script (sroi_to_lerobot.py) and does not describe the collection rig — this data is human-collected with the SROI V2 handheld device.
Citation
If you use this dataset, you are welcome to cite:
Hou, L., Lu, W., Wang, Y., Peng, C., & Fei, Z. (2025). Strawberry Robotic Operation Interface: An Open-Source Device for Collecting Dexterous Manipulation Data in Robotic Strawberry Cultivation. IFAC-PapersOnLine, 59(23), 303–308. arXiv:2501.16717.
License
Apache-2.0
