pick-cube-so101
收藏资源简介:
Pick-Cube SO-101是一个经过精心设计的遥操作抓取放置数据集,使用SO-101机械臂录制。数据集包含440个情节(episodes),每个情节都执行抓取立方体并放入盒子中的任务。数据集的结构旨在系统性地变化抓取覆盖范围、到达深度和手腕角度,以提供多样化的操作示例。数据由六个部分(tranches)按顺序录制组成:离散抓取(25厘米深度)、密集抖动、离散抓取(15厘米深度)、覆盖抖动、逆时针扭转抖动和顺时针扭转抖动。录制时使用SO-101机械臂的领导者-跟随者对,以30帧/秒进行遥操作,并配备三个相机视图(顶部、手腕、侧面)。状态和动作数据包括6自由度关节位置(以度为单位)。该数据集用于训练和评估机器人操作策略,特别是抓取和放置任务。
数据集概述:Pick-Cube SO-101
该数据集是一个精心构造的遥操作抓取-放置数据集,使用 SO-101 机械臂收集,旨在系统性地变化抓取覆盖范围、到达深度和手腕角度。
- 核心任务:抓取立方体并放入盒子中("grab the cube and put it in the box")。
- 总集数:440 个片段(episodes)。
- 许可协议:Apache-2.0。
- 任务类别:机器人学(robotics)。
- 标签:LeRobot、SO-101、pick-place、manipulation。
数据集构成
数据集由六个子组(Tranche)组成,按记录顺序排列:
| 片段范围 | 子组名称 | 描述 |
|---|---|---|
| 0–49 | discrete @ 25 cm | 在25厘米距离处,5个目标角度(0°, ±45°, ±90°)× 10次演示 |
| 50–69 | dense jitter | 20次演示,集中在右侧45°附近,放置抖动±2厘米 |
| 70–119 | discrete @ 15 cm | 在15厘米近距离处,相同5个角度 × 10次演示 |
| 120–239 | blanket jitter | 120次演示,分布在整个工作空间 |
| 240–339 | twist-CCW jitter | 100次演示,手腕逆时针扭转以增加抓取角度变化 |
| 340–439 | twist-CW jitter | 100次演示,手腕顺时针扭转,是逆时针子组的镜像 |
抓取分布
每个抓取点(箭头)在基于SO-101正运动学恢复的工作空间半圆盘上显示:
- 位置:距肩关节轴的距离(厘米环)和目标角度(径向线)。
- 手腕偏航:箭头指向表示。
- 分布特点:
- 离散子组:紧密聚集在15厘米和25厘米的环上。
- blanket jitter:填充离散子组间的空白。
- 扭转子组:箭头明显偏离径向,提供手腕角度变化。
记录信息
- 机器人:SO-101 主从遥操作夹爪对,30帧/秒。
- 相机:三个视角——
camera1(顶部),camera2(腕部),camera3(侧面),分辨率均为480×640。 - 状态/动作:6自由度关节位置(shoulder_pan … gripper),以度为单位。
预训练模型
基于该数据集前340个片段(至twist-CCW子组)微调的 SmolVLA 策略,在真实机械臂上达到了 89%的抓取成功率(72/81),且在不同到达深度上表现均衡。模型地址:dobri420/pick-cube-smolvla-so101
数据使用
使用 LeRobot 库加载:
python from lerobot.datasets.lerobot_dataset import LeRobotDataset
ds = LeRobotDataset("dobri420/pick-cube-so101") print(ds.num_episodes, ds.num_frames) # 440 ...
数据集基于 LeRobot 构建,代码库版本为 v3.0。数据文件格式为 Parquet。



