数据集概述
基本信息
- 数据集地址: https://huggingface.co/datasets/azorematter/dice_white_pnp_und_sf_500_b03
- 许可证: apache-2.0
- 任务类别: robotics
- 标签: LeRobot, fanuc, crx-5ia, pick-and-place, dice, real-robot, undistorted
- 数据规模: 100K < n < 1M
- 机器人类型: fanuc_crx5ia
- 创建工具: LeRobot
- 可视化地址: https://huggingface.co/spaces/lerobot/visualize_dataset?path=azorematter/dice_white_pnp_und_sf_500_b03
数据集描述
FANUC CRX-5iA 骰子抓取放置(pick-and-place)演示数据,由脚本化伺服程序(白色积木收集器)在单元中录制。
- 任务: 拾取骰子并将其放置到空的白色积木上
- 回合数: 481 episodes
- 帧数: 677296 frames
- 帧率: 30 fps
- 相机: 4 个(gripper、cam0、cam1、cam2),分辨率 640x480
- 数据保存条件: 仅在收集器确认骰子放置到位后才保存每个回合
帧几何
- 帧为去畸变(UNDISTORTED,模式
keep): 编码前使用工厂镜头标定(OpenCV rational 模型,全部 14 项,保留 K)进行重映射。
- 每台相机的 K、K_new 与系数存放于
meta/undistort.json。
- 在此数据集上训练的策略在推理时必须输入去畸变帧(fanuc_control.undistort,模式
keep)。
状态与动作
observation.state 和 action 宽度均为 13: J1, J2, J3, J4, J5, J6, X, Y, Z, W, P, R, grip
- J1..J6: 关节角度(度)
- X/Y/Z: 工具尖端位置(mm,世界坐标系,机器人基座为原点)
- W/P/R: FANUC 工具姿态(度)
- grip: 1.0 = OPEN,0.0 = closed
action[t] 即 observation.state[t+1](最后一帧重复),即绝对目标而非增量。
- 姿态来自控制器 125 Hz 状态流,按每帧相机采集时间戳采样,无插值。
- 采集时丢弃条件:某帧下存在姿态空洞、闭合高度超过下降底部 3 mm、相机陈旧。
采集指标
- 回合数: 481
- 帧数: 677296(30 fps)
- 演示时长: 22576 s
- 生成时间: 2026-09-30T14:23:37Z
- 生成工具: fanuc_control.data_utils.metrics v1
- 定义与阈值文档: docs/metrics.md
姿态通道
| 指标 |
值 |
备注 |
| 相同连续姿态 |
0.0% |
旧语料为 18%(移动时缓存冻结) |
| 精确线性斜坡帧 |
14.5% |
旧语料为 79%(插值) |
| 静止帧(关节速度 < 0.5 deg/s) |
31.9% |
RMI stop-and-go 语料为 39% |
| 静止运行长度 p50 / p90 / max(帧) |
14 / 35 / 74 |
运行 ≥ 30 即整个 ACT chunk |
| 静止运行内帧数 ≥ 30 |
11.5% |
悬停固定点;原为 21% |
| stay put 30 行动作 chunks |
13.2% |
静止时标签歧义;原为 15% |
| 关节速度 p50 / p90 / max (deg/s) |
3.4 / 23.1 / 63.4 |
|
抓取几何
| 指标 |
值 |
备注 |
| 含 close / release 的回合 |
481 / 481 |
|
| close 高于下降底部 p50 / p90 / max (mm) |
0.01 / 0.07 / 0.17 |
旧语料 99/99 中为 35.1 mm;限制 3 |
| close 前处于深度帧数 p50 / p90 / max |
18 / 18 / 18 |
抓取前的稳定 |
| close 时 z p50 / p90 / max (mm) |
-126.5 / -126.5 / -126.5 |
|
| release 时 z p50 / p90 / max (mm) |
-125.0 / -125.0 / -125.0 |
|
放置位置(close 时的 x, y)
| 指标 |
值 |
| 测量的 close 数 |
481 |
| x 范围 (mm) |
[155.13, 450.43] |
| y 范围 (mm) |
[335.22, 507.62] |
| 位于随机化区域内 |
98%(区域外:[[446.0, 335.2], [427.1, 337.2], [184.6, 355.3], [233.4, 351.7], [208.9, 354.5], [300.7, 346.6], [300.1, 346.9], [299.4, 347.3], [302.6, 346.6], [367.9, 340.5], [190.3, 355.8]]) |
同步与产出(collection_stats.jsonl)
| 指标 |
值 |
备注 |
| 产出(保留/尝试) |
481 / 623 = 77% |
|
| 丢弃 |
见下表 |
|
| 修复帧 tick(总数,回合数) |
306, 130 |
采样器空洞上复制的帧 |
| 姿态节奏 p50 / p90 / max (ms) |
8.00 / 8.00 / 8.00 |
8.00 为标称 |
| 姿态最差间隔 p50 / p90 / max (ms) |
8.0 / 8.0 / 32.0 |
录制器拒绝 > 40 |
| 姿态序列空洞 |
45 |
|
| 姿态接收抖动 p50 / p90 / max (ms) |
19.9 / 30.5 / 47.2 |
由控制器时钟吸收 |
| close 高于深度 p50 / p90 / max (mm) |
0.01 / 0.07 / 0.17 |
录制器拒绝 > 3 |
| close 前深度前置 p50 / p90 / max (ms) |
599 / 600 / 600 |
|
| 相机间偏斜 p50 / p90 / max (ms) |
58 / 75 / 99 |
录制器拒绝 > 100 |
| 腕部相机 vs 姿态滞后 median / |
median |
/ max |
丢弃明细:
{a 467 ms hole in the frame stream: 4, a 533 ms hole in the frame stream: 2, a 633 ms hole in the frame stream: 4, a 600 ms hole in the frame stream: 6, a 500 ms hole in the frame stream: 3, a 666 ms hole in the frame stream: 2, a 566 ms hole in the frame stream: 2, a 733 ms hole in the frame stream: 2, camera 3 handed out a stale frame: 104 ms behind camera 0 at frame 1257 (limit 100 ms): 1, camera 3 handed out a stale frame: 104 ms behind camera 0 at frame 150 (limit 100 ms): 1, a 367 ms hole in the frame stream: 1, camera 3 handed out a stale frame: 1926 ms behind camera 0 at frame 1150 (limit 100 ms): 1, camera 3 handed out a stale frame: 1938 ms behind camera 0 at frame 1188 (limit 100 ms): 1, a 9830 ms hole in the frame stream: 1, a 10363 ms hole in the frame stream: 1, a 10096 ms hole in the frame stream: 1, unknown: 103, a 700 ms hole in the frame stream: 1, camera 3 handed out a stale frame: 131 ms behind camera 0 at frame 764 (limit 100 ms): 1, camera 3 handed out a stale frame: 105 ms behind camera 0 at frame 637 (limit 100 ms): 1, a 12120 ms hole in the frame stream: 1, camera 3 handed out a stale frame: 101 ms behind camera 0 at frame 1322 (limit 100 ms): 1, camera 3 handed out a stale frame: 106 ms behind camera 0 at frame 389 (limit 100 ms): 1}
相机指标
| 相机 |
文件数 |
帧数 |
行数 |
match |
亮度中位数 |
截断 |
| observation.images.gripper |
25 |
677296 |
677296 |
True |
43 |
0.09% |
| observation.images.cam0 |
45 |
677296 |
677296 |
True |
115 |
0.44% |
| observation.images.cam1 |
42 |
677296 |
677296 |
True |
16 |
0.61% |
| observation.images.cam2 |
46 |
677296 |
677296 |
True |
13 |
0.93% |
标记(Flags)
- 静止帧 31.9% > 30.0%
- 静止运行内帧数 ≥ 30: 11.5% > 10.0%
- stay-put 30 行 chunks: 13.2% > 5.0%
- 随机化区域外放置:11
- 产出 77% < 80%
- 姿态流序列空洞:45
- observation.images.cam1 亮度中位数 16
- observation.images.cam2 亮度中位数 13
数据结构
meta/info.json
- codebase_version: v3.0
- fps: 30
- total_episodes: 481
- total_frames: 677296
- total_tasks: 1
- chunks_size: 1000
- data_files_size_in_mb: 100
- video_files_size_in_mb: 200
- 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: fanuc_crx5ia
- splits: train: 0:481
特征(Features)
| 特征 |
类型 |
形状 |
名称 |
| observation.state |
float32 |
[13] |
J1, J2, J3, J4, J5, J6, x, y, z, W, P, R, gripper |
| action |
float32 |
[13] |
J1, J2, J3, J4, J5, J6, x, y, z, W, P, R, gripper |
| observation.images.gripper |
video |
[480, 640, 3] |
height, width, channels |
| observation.images.cam0 |
video |
[480, 640, 3] |
height, width, channels |
| observation.images.cam1 |
video |
[480, 640, 3] |
height, width, channels |
| observation.images.cam2 |
video |
[480, 640, 3] |
height, width, channels |
| timestamp |
float32 |
[1] |
null |
| frame_index |
int64 |
[1] |
null |
| episode_index |
int64 |
[1] |
null |
| index |
int64 |
[1] |
null |
| task_index |
int64 |
[1] |
null |
视频参数(所有相机一致)
- video.height: 480
- video.width: 640
- video.codec: av1
- video.pix_fmt: yuv420p
- video.fps: 30
- video.channels: 3
- has_audio: false
- video.g: 2
- video.crf: 30
- video.preset: 12
- video.fast_decode: 0
- video.video_backend: pyav
- video.extra_options: {}
- is_depth_map: false
配置(Configs)
- config_name: default
- data_files: data//.parquet